我正在尝试用Java创建一个简单的ZIP文件,但是一旦生成,我无法使用Windows资源管理器或7-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。
答案 0 :(得分:10)
你写的是错误的信息流。
// fos.write(data, 0, data.length);
zos.write(data, 0, data.length);