在 Java 中附加到 Zip 文件:TrueZip 和 Java 7
在提取、修改和重新打包 WAR 文件的上下文中,这是常见的考虑通过将文件直接附加到现有 WAR 存档来提高效率。虽然 Java 文档缺乏执行此任务的显式方法,但有可用的解决方案。
TrueZip 库
一种选择是利用 TrueZip 库,如更新中的建议询问。 TrueZip 提供了用于操作和附加 Zip 档案的特定功能。使用 TrueZip,可以有选择地添加、更新和删除目标 Zip 文件中的文件。
Java 7 的 Zip 文件系统
此外,Java 7 引入了 Zip 文件系统,允许修改 Zip 档案而无需重新打包。借助 Zip 文件系统,您可以使用标准 Java I/O 操作直接写入或修改 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"); } }
通过使用 Zip 文件系统,您可以像常规文件系统一样与 Zip 存档进行交互,从而实现高效的文件添加和修改。
以上是如何使用 TrueZip 或 Java 7 的 Zip 文件系统将文件附加到 Java 中的现有 Zip 存档?的详细内容。更多信息请关注PHP中文网其他相关文章!