用 Java 将文件附加到 Zip 文件:探索有效的方法
使用 war 文件时,通常会提取其内容,添加新文件,然后创建一个新的 war 文件。但是,由于需要扩展和重新压缩,此过程可能非常耗时。
可以考虑的一种有效替代方法是将文件直接附加到 war 文件。虽然 Java 文档没有对此提供明确的指导,但有一些外部库可以启用此功能。
TrueZip 和类似库
TrueZip 是一个流行的 Java 库用于操作 zip 文件。它支持将文件附加到 zip 存档中,使其成为所描述场景的合适解决方案。下面是一个使用 TrueZip 的示例:
ZipFile zipFile = new ZipFile("test.war"); zipFile.addFile("new.txt", new File("new.txt")); zipFile.close();
Java 7 ジップufァイルシテム机能
在 Java 7 中,Zip 文件系统 API 提供了一种用于访问和操作的本机机制zip 文件作为文件系统。这允许直接写入和修改 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 7 Zip 文件系统是将文件附加到 zip 存档的强大且高效的方法。然而,对于较旧的 Java 版本,TrueZip 等外部库可以填补此功能空白。
以上是如何在 Java 中高效地将文件附加到 Zip 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!