首页 >Java >java教程 >如何在 Java 中高效地将文件附加到 Zip 文件?

如何在 Java 中高效地将文件附加到 Zip 文件?

DDD
DDD原创
2024-11-21 05:56:11860浏览

How Can I Efficiently Append Files to a Zip File in Java?

用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn