Java GZIP圧縮(単体のファイルを扱う場合には使いやすい)

はじめに

事前に準備する外部ライブラリ等はありません。 JavaSEに含まれるjava.util.zip.GZIPOutputStreamクラスを使用します。

実装例

サンプルでは、動作確認しやすいようにmainメソッドで実行できるようにしてあります。

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;

/**
 *
 * @author tool-taro.com
 */
public class GZIPTest {

    public static void main(String[] args) throws IOException {

        //圧縮対象のデータ(今回は文字列)
        String source = "これはテストです。\n以上。";
        //圧縮後のファイルの保存場所
        String outputFilePath = "output.txt.gz";
        //圧縮前にバイト配列に置き換える際のエンコーディング
        String encoding = "UTF-8";

        GZIPOutputStream gout = null;

        try {
            gout = new GZIPOutputStream(new FileOutputStream(outputFilePath));
            gout.write(source.getBytes(encoding));
        }
        finally {
            if (gout != null) {
                try {
                    gout.close();
                }
                catch (Exception e) {
                }
            }
        }
    }
}

動作確認

$ javac GZIPTest.java
$ java GZIPTest

生成されたファイルの解凍結果と、 無題.png 解凍後のテキスト内容です。 無題2.png

環境

Webツールも公開しています。 Web便利ツール@ツールタロウ