Java 将字节转换为图像时出现格式错误

Java 将字节转换为图像时出现格式错误,java,image,Java,Image,对于我的代码,我得到一个字节数组,需要将其转换为图像。经过搜索,我找到了这个 byte[] data = (byte array here) Files.createFile(Paths.get("./test.png")); File file = new File("./test.png"); ByteArrayInputStream bis = new ByteArrayInputStream(data); BufferedImage bi = I

对于我的代码,我得到一个字节数组,需要将其转换为图像。经过搜索,我找到了这个

byte[] data = (byte array here)

Files.createFile(Paths.get("./test.png"));
File file = new File("./test.png");
ByteArrayInputStream bis = new ByteArrayInputStream(data);
BufferedImage bi = ImageIO.read(bis);
ImageIO.write(bi, "png", file);
运行此代码时没有错误。它创建了一个文件,在我打开它之前一切都正常。它给我一个错误,说这个文件格式不受支持。我尝试过将其更改为jpg和bmp格式。那也不行。如有任何建议,将不胜感激


我忘了包括这是一个套接字网络程序,所以它是多人游戏。当转换客户端的每个人时,它工作得很好。当它到达服务器时就会中断。因此,我得出结论,这是我的服务器的问题,而不是我的代码。代码应该可以正常工作,即使
Files.createFile(…)
是不必要的。但它当然不会适用于所有输入(
数据
),因此我们在这里只看到一半的问题。。。如果
bi
为非
null
,则至少您的输入是有效的图像文件。请注意,
ImageIO.write(..)
返回一个表示成功的布尔值。如果它是
false
,我猜
test.png
是一个空文件。