Java

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

はじめに

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

実装例

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

GZIPTest.java

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

環境

  • 開発
    • Windows 10 Pro
    • JDK 1.8.0_74
    • NetBeans IDE 8.1
  • 動作検証
    • CentOS Linux release 7.2
    • JDK 1.8.0_74

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

スポンサーリンク