从缓冲图像到数据输出流

时间:2017-07-24 10:51:57

标签: java file

我想写一个缓冲图像的数据输出流。

无论我尝试什么都行不通。

例如:

BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);

final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final DataOutputStream dos = new DataOutputStream(baos);

      try {
          dos.writeByte((DataBufferByte) image.getData().getDataBuffer());
      }finally {
          dos.close();
      }

      baos.writeTo(os);

我无法使第dos.writeByte((DataBufferByte) image.getData().getDataBuffer());行生效。

现在,它显示:the method writeByte(int) in the type DataOutputStream is not applicable for the arguments (DataBufferByte)

1 个答案:

答案 0 :(得分:0)

方法writeByte只需一个int,而不是DataBufferByte作为参数:

  

将一个字节写入基础输出流,作为1字节值。如果没有抛出异常,则写入的计数器将增加1.

所以你的代码无法编译。

请注意,如果采用int,则不能接受超过1个字节的值。

您需要提取DataBufferByte的bytes数组,并且可以使用方法write(byte\[\] b, int off, int len)来编写它们。