1
我目前使用的是Netty。現在的問題是,我想從緩衝區中檢索一個特定的字符串。例如,如果緩衝器中的數據如下:如何從Netty JAVA中的連續緩衝區/字節數組中獲取特定的字符串模式?
8=FIX.4.2|9=00815|35=W|49=TT_PRICE|56=SAP0094X|10=134|8=FIX.4.2|9=00816|35=W49=TT_PRICE|56=SAP0094X|10=121
現在我想要開始的字符串用「8 = XXX」,並用「10 = XXX」的結局。您可以清楚地看到,我們在緩衝區中添加了兩個字符串。請注意,上述數據是在一個字節數組中。所以,有時我會得到確切的字符串,並且有時候我會得到字符串,並且會追加另一半的完整字符串。我想要的是,我怎樣才能得到從「8 = xxx」到「10 = xxx」的字符串。我在Netty中看到了DelimiterBasedFrameDecoder類,它只是簡單地檢查指定的分隔符並將字符串提供給我們。以同樣的方式,我該如何做到這一點?
請注意使用'bb.array()'只在'bb.hasArray()'返回true時保存。並且還需要考慮'bb.arrayOffset()'。 –
謝謝。但是因爲我在這裏使用Netty,所以我會在這裏獲得ByteBuf而不是ByteBuffer。 –
在netty use:ByteBuf.toString(Charset)中獲取ByteBuf中的字符串。 –