ImageIO ZLIB 输入流的意外结束

我有以下代码用于遍历目录中的文件并将它们调整为 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 个图像后它会中断,它给出的错误是“Caused by: java.io.EOFException: Unexpected end of ZLIB input stream”就行了


BufferedImage image = ImageIO.read(file);

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


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


拉风的咖菲猫
浏览 183回答 1
1回答

UYOU

问题原来是一个损坏的文件头,我能够通过重新生成原始文件并添加一个 try catch 块来捕获一个来解决这个问题,EOFException以便在以后的任何文件中它可以在该特定文件上输出错误并继续解析文件目录的其余部分。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java