2009-06-24 48 views
0

我一直在研究Netty和Mina,但對重寫二進制數據流的最佳方式感到困惑。例如,我想創建一個允許替換XML並前進的代理。使用Java重寫二進制數據流

示例讚賞。

+0

你能更精確嗎?你想寫一個Java類,它需要一個流,提供一個流,並在兩者之間操縱數據?順便說一句:XML是純文本,而不是二進制數據。 – 2009-06-24 11:51:25

回答

1

我覺得你在考慮太低的水平。 XML不是「二元的」,因爲它是二進制的抽象。如果你想在他們遇到你的線路時替換XML片段,你必須捅入數據包的有效負載部分並查找XML模式。一種簡單的方法是在重新生成字節後使用正則表達式內容暫時。

一旦你有這個搜索,你已經匹配你想要的,你可以替換你想要替換和重新發送。

這個難題在於,在離開機器之前,您可能需要緩存一些輸入信息,以便能夠找到正在搜索的內容的開始和結尾。造成這種困難的原因往往是,你不知道什麼構成了數據有效載荷的「開始」和「結束」。