我想写一个缓冲图像的数据输出流。
无论我尝试什么都行不通。
例如:
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)
答案 0 :(得分:0)
方法writeByte
只需一个int
,而不是DataBufferByte
作为参数:
将一个字节写入基础输出流,作为1字节值。如果没有抛出异常,则写入的计数器将增加1.
所以你的代码无法编译。
请注意,如果采用int,则不能接受超过1个字节的值。
您需要提取DataBufferByte的bytes数组,并且可以使用方法write(byte\[\] b, int off, int len)
来编写它们。