如何将字节缓冲器的内容放入输出流中?

2022-09-01 05:12:07

我需要将 a 的内容放入 .(希望我有一个,但我没有)最好的方法是什么?java.nio.ByteBufferjava.io.OutputStreamChannel

我不能使用ByteBuffer的方法,因为它可以是只读缓冲区。array()

我也可能在使用此ByteBuffer和拥有一个可以直接使用的常规数组之间穿插对输出流的写入。byte[]OutputStream.write()


答案 1

看看 Channels.newChannel(OutputStream)。。它将为您提供一个给定输出流的通道。使用WriteableByteChannel适配器,您可以提供ByteBuffer,它将它写入 OutputStream。

public void writeBuffer(ByteBuffer buffer, OutputStream stream) {
   WritableByteChannel channel = Channels.newChannel(stream);

   channel.write(buffer);
}

这应该可以解决问题!


答案 2

推荐