首页 文章

直接从ByteBuffer转到String但没有中间字节[]?

提问于
浏览
0

是否有一种方法可以避免必须使用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 回答

  • 2

    不是直接 ByteBuffer ,没有 . 你需要有中间的东西,因为 String 不会将 ByteBuffer 作为构造函数参数,并且你不能包装一个(甚至是 char[] ) . 如果缓冲区是非直接的,则可以使用 array() 方法获取对后备阵列(不是中间阵列)的引用,并从中创建 String .

    从好的方面来说,项目中可能存在更多对性能敏感的地方 .

相关问题