zipファイル作成サンプル

あえて、JavaSE7のNIO2を使用しないで、zipファイルを作成。
zip対象となる入力ファイルは、実際のディスク上には存在しない状態で、実装中で指定したディレクトリ構成、ファイルのデータは実装中で指定した値で作成。

  • 1.zipするファイルの指定
        List<String> files = Arrays.asList(
                  "dir1/test1.txt"
                , "dir1/dir2/test2.txt");
  • 2.作成するzipファイル
            out = new ZipOutputStream(new BufferedOutputStream(
                    new FileOutputStream("/Users/tomo/ziptest/myzip.zip")));
  • 3.zip作成

1.のファイル毎にzip entryを作成、#putNextEntry後、#writeメソッドでデータを出力

            for (String file : files) {
                ZipEntry entry = new ZipEntry(file); // zipのエントリ作成
                out.putNextEntry(entry);
                String data = String.format("file name:%s", file);
                out.write(data.getBytes()); // zipエントリにデータを書く
            }
  • 実行結果


コードは、ここcreating zip file without input files. · GitHubにアップ。
次はNIO2、JavaSE8で挑戦したいと思ってます!