ホームページ >Java >&#&チュートリアル >Java で ZIP ファイルにファイルを効率的に追加するにはどうすればよいですか?

Java で ZIP ファイルにファイルを効率的に追加するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-21 05:56:11858ブラウズ

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

Java で ZIP ファイルにファイルを追加: 効率的な方法を調べる

war ファイルを扱うときは、コンテンツを抽出して追加するのが一般的です。新しいファイルを作成し、新しい war ファイルを作成します。ただし、このプロセスには展開と再圧縮が必要なため、時間がかかることがあります。

検討すべき効率的な代替手段の 1 つは、ファイルを 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 ジップ ファイル システム機能

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。