是否可以使用java文件系统创建新的zip文件?
2022-09-03 05:46:58
我已经使用java 7提供的(现有)zip文件成功修改了(现有)zip文件的内容,但是当我尝试通过此方法创建一个新的zip文件时,它失败了,错误消息说:,由于我这样做的方式,这是合乎逻辑的,首先我创建文件()这是一个完全空的文件, 然后我尝试访问其文件系统 ,并且由于文件是空的,因此无法在zip中找到任何标头,我的问题是有没有办法使用此方法创建一个完全空的新zip文件?我考虑过的黑客是将一个空的新文件添加到zip文件中,然后使用该新的空文件基于它来创建文件系统,但我真的想认为oracle的人实现了一种更好(更简单)的方法,可以使用nio和文件系统来做到这一点......FileSystem
"zip END header not found"
Files.createFile
ZipEntry
这是我的代码(创建文件系统时出现错误):
if (!zipLocation.toFile().exists()) {
if (creatingFile) {
Files.createFile(zipLocation);
}else {
return false;
}
} else if (zipLocation.toFile().exists() && !replacing) {
return false;
}
final FileSystem fs = FileSystems.newFileSystem(zipLocation, null);
.
.
.
zipLocation
是路径是布尔值creatingFile
答:在我的特定情况下,由于路径中的空格,给出的答案无法正常工作,因此我必须以我不想的方式进行:
Files.createFile(zipLocation);
ZipOutputStream out = new ZipOutputStream(
new FileOutputStream(zipLocation.toFile()));
out.putNextEntry(new ZipEntry(""));
out.closeEntry();
out.close();
这并不意味着给出的答案是错误的,它只是不适用于我的特定情况