是否有一种方法可以避免必须使用ByteBuffer.get()操作从ByteBuffer复制byte []。
我正在看这篇文章Java: Converting String to and from ByteBuffer and associated problems
这会导致我不想要的中间CharBuffer。
我希望它从ByteBuffer转到String。
当我知道我有一个字节[]底层时,这很容易使用像这样的代码
new String(data, offset, length, charSet);
我希望与ByteBuffer有类似的东西。我开始认为这可能不可能吗?我需要真正解码我的ByteBuffer的N个字节。
这可能是一些过早的优化,但我真的很好奇,想要测试性能并挤出一点点。 (个人项目真的)。
感谢, 迪安
答案 0 :(得分:2)
不是直接ByteBuffer
,不是。你需要有中间的东西,因为String
没有ByteBuffer
作为构造函数参数,你不能包装一个(甚至是char[]
)。如果缓冲区是非直接的,您可以使用array()
方法获取对后备阵列的引用(它不是一个中间数组)并从中创建String
。 / p>
从好的方面来说,你的项目可能会有更多对性能敏感的地方。