我当前正在提取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"); } }