株式会社イーブ|未経験・転職の方も就職可能。Javaプログラマー育成のエキスパート

HOMEJAVA技術者育成システム開発求人情報個人情報保護

第 95 回 ~ ZIPファイルの入出力 ~

トップページ > Java技術者育成 > Javaワンポイント > 第 95 回 ~ ZIPファイルの入出力 ~

引き続き「ZIPファイルの入出力」について見ていきます。


次のサンプルコードは、ZIPファイルを読み込むプログラムです。
エントリはテキストファイルです。



import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;


public class Main {


    public static void main(String[] args) {
        BufferedReader bufferedReader = null;
        try {
            ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream("input.zip"));
            InputStreamReader inputStreamReader = new InputStreamReader(zipInputStream, "Shift-JIS");
            bufferedReader = new BufferedReader(inputStreamReader);
            for (ZipEntry zipEntry = zipInputStream.getNextEntry(); zipEntry != null; zipEntry = zipInputStream.getNextEntry()) {
                System.out.println(zipEntry.getName());
                while (bufferedReader.ready()) {
                    System.out.println(bufferedReader.readLine());
                }
                System.out.println();
                zipInputStream.closeEntry();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (bufferedReader != null) {
                try {
                    bufferedReader.close();
                } catch (Exception e) {}
            }
        }
    }


}



ZipInputStreamクラスにはZIP ファイル形式でファイルを読み込む機能があります。
getNextEntryメソッドで順次エントリを取得し、ZipInputStreamから読み込むことで、複数のエントリを読み込み表示しています。


なお、エントリのファイル名は「UTF-8」として扱われます。
ファイル名が日本語のエントリを読もうとすると例外がスローされます。
Javaで作成したZIPファイルを読む場合は問題ありませんが、それ以外のZIPファイルを読むような場合はApache Ant(ant.jar)のorg.apache.tools.zip.ZipFileの使用を検討してください。


[Javaワンポイント]内の前後の記事
第 96 回 ~ ソケットの入出力 ~
→ 第 95 回 ~ ZIPファイルの入出力 ~
第 94 回 ~ ZIPファイルの入出力 ~


■更新日時での前後の記事
3月18日 お天気
→ 第 95 回 ~ ZIPファイルの入出力 ~
3月17日 お天気