我需要将 java.nio.ByteBuffer
的内容放入 java.io.OutputStream
。 (希望我有一个 Channel
但我没有)最好的方法是什么?
我不能使用 ByteBuffer 的 array()
方法,因为它可以是只读缓冲区。
我也可能在使用这个 ByteBuffer 和拥有一个常规的 byte[]
数组之间散布对 OutputStream 的写入,我可以直接使用 OutputStream.write()
.
最佳答案
看Channels.newChannel(OutputStream) .它会给你一个给定输出流的 channel 。使用 WritableByteChannel 适配器,您可以提供将其写入 OutputStream 的 ByteBuffer。
public void writeBuffer(ByteBuffer buffer, OutputStream stream) {
WritableByteChannel channel = Channels.newChannel(stream);
channel.write(buffer);
}
这应该可以解决问题!
关于java - 如何将 ByteBuffer 的内容放入 OutputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/579600/