Zip文件全部24小时

时间:2010-11-29 12:52:23

标签: java gzip

我遇到了这个方法的问题。它将在每24小时(凌晨3点)调用,并应压缩文件。第一次,它正常工作。在第二个循环中,zip文件只能增长到4 MB(应该是1,5gb)。我错了什么? (对不起,我的英语不好)。这是代码:

 private static void zipFile(String srcfile, String desfile) throws IOException {
        FileInputStream in = new FileInputStream(srcfile);
        BufferedInputStream in2 = new BufferedInputStream(in);
        FileOutputStream out = new FileOutputStream(desfile);
        GZIPOutputStream zipOut = new GZIPOutputStream(out);
        BufferedOutputStream out2 = new BufferedOutputStream(zipOut);
        int chunk;
        appendLog("start zip...");
        while ((chunk = in2.read()) != -1) {
                out2.write(chunk);
        }
        out2.close();
        zipOut.close();
        out.close();
        appendLog("zipping file done: " + desfile);
}

2 个答案:

答案 0 :(得分:0)

每次启动时desfile和srcfile是否相同?

如果是这样,你的代码每次调用时都会用srcfile中的压缩数据替换desfile,而不是将新数据附加到这个文件中。在这种情况下,您确定目标文件大小应该增加那么多吗?

答案 1 :(得分:0)

此片段中未关闭in和in2中的流。也许srcfile是在最后一次运行此方法时打开的,而第二次打开此文件失败了?