2013-12-17 156 views
2

我想在Java中创建一个简单的ZIP文件,但一旦生成,我无法用Windows资源管理器或7-zip打开它,因为他们说文件无效/无法识别/损坏。然而,我遵循我所见过的所有教程,并使用一个非常简单的代码,所以我没有看到我出错的地方。这是我能想到的最简单的代码片段重现该问题:生成的ZIP文件损坏/无效

FileOutputStream fos = new FileOutputStream("test.zip"); 
ZipOutputStream zos = new ZipOutputStream(fos); 
ZipEntry ze = new ZipEntry("test.txt"); 
zos.putNextEntry(ze); 
byte[] data = "content".getBytes(); 
fos.write(data, 0, data.length); 
zos.closeEntry(); 
zos.finish(); 
zos.close(); 

难道我错过的地方设置? 仅供参考,我上传了test.zip文件here

回答

8

您正在写入错误的流。

// fos.write(data, 0, data.length); 
    zos.write(data, 0, data.length); 
+0

好吧,这里浪费了一个小时!感谢您的快速回复(当S/O让我时,我会接受)。 – Lazlo