2010-11-29 54 views
0

我有這種方法的問題。它會每24小時(凌晨3點)打電話,並且應該壓縮一個文件。第一次,它工作正常。在第二個循環中,zip文件只能增長到4 MB(應該是1,5GB)。我錯了什麼? (對不起,我的英語不好)。這裏是代碼:Zip文件的所有24小時

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); 
} 
+0

'在第二loop`什麼第二環? – 2010-11-29 13:00:58

+0

第2天的壓縮文件的內容是否損壞或不完整? – 2010-11-29 13:04:00

回答

0

desfile和srcfile在每次啓動時是否相同?

如果是這樣你的代碼就可以在每次調用時SRCFILE替換壓縮數據的desfile,沒有新數據添加到該文件。在這種情況下,你確定目標文件的大小應該增加多少?

0

於和IN2的流在這個片段中沒有關閉。也許srcfile是由這個方法的最後一次運行打開的,並且這個文件的第二次打開失敗了?