我有一個方法,拉鍊5個文件。它會產生一個沒有錯誤的zip文件,但我無法打開它來檢查內容。我嘗試通過電子郵件發送,而gmail說它不能發送損壞的文件。試圖在Windows中使用WinRAR打開導致錯誤,指出:這種zip方法有什麼問題?
的檔案或者是在未知的格式或損壞
這是方法:
private void zipTestFiles() throws FileNotFoundException, IOException
{
File[] filenames = fileDir.listFiles(fileNameFilter(Constants.PAGE_MON_FILENAME_FILTER));
byte[] buf = new byte[1024];
String outFilename = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separatorChar + Constants.PAGEMONITOR_ZIP;
DeflaterOutputStream out = new DeflaterOutputStream(new BufferedOutputStream(new FileOutputStream(outFilename)));
for (int i=0; i<filenames.length; i++)
{
FileInputStream in = new FileInputStream(filenames[i]);
int len;
while ((len = in.read(buf)) > 0)
{
out.write(buf, 0, len);
}
in.close();
}
out.close();
}
你有沒有試過用它來壓縮一個文件? – ethan
ZIP文件是您的文件的縮小表示,再加上一些標題。可能你的應用程序會產生前者,但會遺漏後者,所以錯誤。我認爲@ AlexR的答案是正確的。 – akappa
@akappa它確實是... – barry