是否有一种方法可以避免必须使用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个字节 .
这可能是一些过早的优化,但我真的很好奇,想要测试性能并挤出每一点点 . (个人项目真的) .
谢谢,迪恩
1 回答
不是直接
ByteBuffer
,没有 . 你需要有中间的东西,因为String
不会将ByteBuffer
作为构造函数参数,并且你不能包装一个(甚至是char[]
) . 如果缓冲区是非直接的,则可以使用array()
方法获取对后备阵列(不是中间阵列)的引用,并从中创建String
.从好的方面来说,项目中可能存在更多对性能敏感的地方 .