Java中图像文件的字节数组

时间:2018-06-26 07:26:29

标签: java arrays

enter image description here

附上的是一个图像文件,我将其转换为字节数组,然后将字节数组写回图像文件。它工作正常。转换后的字节数组的值为[B @ 5bc79255。

HP Service Manager中的事件附加了相同的文件。并正在使用java wo通过网络服务连接并下载附件文件为字节数组并写入图像文件。在这种情况下,我面临问题。我通过他们提供的Web服务功能从HPSM中检索到的此字节数组是[B @ 6e0e048a

如您所见,值也不同。但是令人惊讶的是,当我将[B @ 6e0e048a]写入图像文件时,该文件的大小为sero,并且文件内什么都没有!仿佛我将相同的文件转换为字节数组并将其写回到某些图像文件中一样,其复制正确!!

1 个答案:

答案 0 :(得分:0)

如果您正在使用servlet检索字节,并且图像是base64图像,请使用:

while ((line = request.getReader().readLine()) != null)
                stringBuffer.append(line);

String base64Image = imageData.toString().split(",")[1];
            byte[] imageBytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(base64Image);
            ByteArrayInputStream finalStream = new ByteArrayInputStream(stringBuffer);

并将finalStream写入文件。