Javaを使って普段の仕事をラクにするツールを作るこの連載も,早くも第9回を迎えます。今回は,皆さんが普段から使っている圧縮ファイルの扱い方について見ていきます。Javaを使ってファイルを圧縮/解凍する方法を学びましょう。

こちらからサンプルプログラムをダウンロードできます。

 この連載では,日々の定型的な業務をJavaで自動化してラクする方法を紹介しています。今回は,皆さんも利用する機会の多い圧縮ファイルをJavaから操作してみましょう! Javaを使って,ファイルを圧縮/解凍する方法を説明します。

 おそらく読者の皆さんのほとんどは,ファイルの圧縮や解凍に専用のツールを使用していると思います。便利なことに,Javaもこうした専用ツールと同様に,ファイルを圧縮/解凍できる機能を備えています。この機能を使うと,GUIベースのファイル圧縮/解凍専用ツールでは難しい操作もできるようになります。例えば,あるフォルダ以下に含まれたファイルから,特定の文字列を含むファイルを検索して圧縮/解凍する,といった操作が可能になります。何だかとても便利そうですね。さっそく見ていきましょう。

 今回作成するのは,複数のテキスト・ファイルを圧縮したファイルから文字列を検索し,検索した文字列を含むテキスト・ファイルの名前を抽出するという,圧縮ファイル内検索ツールです。Javaでは,圧縮/解凍にZIP形式*1とGZIP形式*2を扱うことができます。皆さんがよく使うのはZIP形式だと思いますので,今回もZIPファイルを取り上げることにします。

 既存の専用ツールを使う場合,同様の作業を実行しようとすると,専用ツールでいちど解凍してから,検索を実行するという段階を踏む必要がありました。今回は,これらの作業をまとめて実行するツールを作ってみましょう(図1)。

図1●作成するファイル内検索ツールのイメージ
図1●作成するファイル内検索ツールのイメージ
[画像のクリックで拡大表示]

 このツールを作るだけなら,ファイルの解凍方法のみを理解すれば十分です。ただ,せっかく圧縮ファイルを扱うのですから,ファイルの圧縮方法もついでに説明しておきます。

 圧縮ファイル内検索ツールを作成する前に,以下のポイントを順に押さえていきます。

  • ZIPファイルへの圧縮方法とその注意点
  • ZIPファイルの解凍方法とその注意点

 それでは,見ていくことにしましょう。