java - 如何将 ByteBuffer 的内容放入 OutputStream?

标签 java outputstream bytebuffer

我需要将 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/

相关文章:

java - 在 Python 和 Java 中对原始字节进行哈希处理会产生不同的结果

java - maven编译错误

java - Fasterxml Jackson 映射 - 数据未正确绑定(bind)

java - 将属性存储到文本文件中时,文本文件中属性的写入顺序与代码执行顺序相反

java - ByteBuffer 越界异常

java - 如何将 bufferedImage 加载为 opengl 纹理?

java - 在 Seam 中手动回滚事务

java - 如何使用snakeyaml从yaml文件中读取顶级HashMap?

java - 扩展OutputStream类;写(int)方法

java - 使用 JDBC 和 Oracle 序列化 ArrayList