java.io.IOException : Premature EOF

标签 java

我正在尝试使用 Stream 下载 xml 文件,一切都很好,直到 xml 大小变得大于 9 MB,所以我收到此错误 java.io.IOException:过早的 EOF

这是代码

BufferedInputStream bfi = null;
        try {
            bfi = new BufferedInputStream(new URL("The URL").openStream());
            String name = "name.xml";
            FileOutputStream fb = new FileOutputStream(name);
            BufferedOutputStream bout = new BufferedOutputStream(fb, 1024);
            byte[] data = new byte[1024];
            int x = 0;
            while ((x = bfi.read(data, 0, 1024)) >= 0) {
                bout.write(data, 0, x);
            }
            this.deletePhishTankDatabase(this.recreateFileName());
            ptda.insertDownloadTime(hour, day, month, year);
            bout.close();
            bfi.close();
        } catch (IOException ex) {
            Logger.getLogger(PhishTankDataBase.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                bfi.close();
            } catch (IOException ex) {
                Logger.getLogger(PhishTankDataBase.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    } else {
        System.out.println("You can't do anything");
        return;
    }

最佳答案

尝试使用分块流模式。

关于java.io.IOException : Premature EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2754158/

相关文章:

JAVA - 在接口(interface)中定义一个方法

java - Gradle 在编译前重命名包

java - java 小程序错误

java - 在java中打印双数并得到错误的答案

java - 检查某个数字在用户指定的输入文件中连续出现了多少次

java - 使用 jcifs 复制文件需要很长时间

java - 在 Spring Boot 中设置 TTL 以使用一个 CacheManager 缓存不同的数据

javax.jms.JMSSecurityException : MQJMS2008: failed to open MQ queue

java - 在具有动态响应的大型集群系统上协调共享状态

java - DDD - java 9 模块项目组织