ZLIB 输入流的 ImageIO 意外结束

ImageIO Unexpected end of ZLIB input stream

我有以下代码用于遍历目录中的文件并将它们的大小调整为 64x64 像素。

for(File file: friedFiles){
        System.out.println(file.getPath());
        BufferedImage image = ImageIO.read(file);
        Image resize = image.getScaledInstance(64,64, Image.SCALE_DEFAULT);
        File resizedFile = new File(path + "\" + file.getName());

        ImageIO.write(convertToBufferedImage(resize), "png", resizedFile);
    }
    System.out.println("Files finished");

这工作正常,但在该目录中的第 300 个图像之后它中断了,它给出的错误是“引起:java.io.EOFException:ZLIB 输入流的意外结束”

BufferedImage image = ImageIO.read(file);

我不确定是什么原因导致的,因为它试图读取的文件是一个有效的图像文件。

编辑:请查看我添加到此问题的答案,问题是原始文件中的文件头已损坏。

问题原来是损坏的文件头,我能够通过重新生成原始文件并添加一个 try catch 块来捕获 EOFException 来解决这个问题,这样在以后的任何文件中它都可以在该特定文件上输出错误并继续解析文件目录的其余部分。