我有问题找到这个问题的解决方案。 我有一个字符的Bytebuffer(确切的文本行),我需要在该缓冲区中找到一个子字符串。 最简单的解决方案是将ByteBuffer转换为字符串,然后使用该字符串,但是该解决方案要求我加倍(至少)我在程序的堆栈(或堆)中使用的内存量,我不希望这样,我宁愿做一些沿着每一行的事情将它转换成字符串,然后使用它。这样做有简单的方法吗? 感谢。
答案 0 :(得分:1)
您可以从缓冲区中的ByteBuffer
个字节读取,直到找到一个分隔线字符或一个不属于String
的字符来查找。
您可以使用此方法:
java.nio.ByteBuffer.get(byte[] dst, int offset, int length)
然后将字节转换为String
(new String(bytes, yourEncoding))
,并检查它是否包含要匹配的String
。
否则,请阅读以下字节并重复相同的处理。