使用Java将文件追加到zip文件

我当前正在提取war文件的内容,然后将一些新文件添加到目录结构中,然后创建一个新的war文件。

所有这些都是通过Java以编程方式完成的-但我想知道,复制war文件然后追加文件是否会更有效-那么只要战争扩大,我就不必等待,再次被压缩。

但是,在文档或任何在线示例中,我似乎都找不到找到此方法的方法。

任何人都可以给一些提示或指示吗?

更新:

答案之一中提到的TrueZip似乎是一个非常好的java库,可以附加到zip文件中(尽管其他答案表明无法做到这一点)。

是否有人对TrueZip有经验或反馈,或者可以推荐其他类似的库?

回答:

在Java 7中,我们获得了Zip文件系统,该文件系统允许以zip(jar,war)格式添加和更改文件,而无需手动重新打包。

我们可以直接将文件写入zip文件中,如下例所示。

Map<String, String> env = new HashMap<>(); 

env.put("create", "true");

Path path = Paths.get("test.zip");

URI uri = URI.create("jar:" + path.toUri());

try (FileSystem fs = FileSystems.newFileSystem(uri, env))

{

Path nf = fs.getPath("new.txt");

try (Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE)) {

writer.write("hello");

}

}

以上是 使用Java将文件追加到zip文件 的全部内容, 来源链接: utcz.com/qa/432152.html

回到顶部