|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.zip.Deflater
public class Deflater
このクラスは、一般的な ZLIB 圧縮ライブラリを使用して汎用の圧縮アルゴリズムをサポートします。ZLIB 圧縮ライブラリは、当初 PNG グラフィック標準の一部として開発されたもので、特許では保護されていません。仕様の詳細は、「パッケージ java.util.zip の説明」を参照してください。
次に、Deflater および Inflater を使用して文字列をいくらか圧縮および圧縮解除するコードを示します。
try { // Encode a String into bytes String inputString = "blahblahblah??"; byte[] input = inputString.getBytes("UTF-8"); // Compress the bytes byte[] output = new byte[100]; Deflater compresser = new Deflater(); compresser.setInput(input); compresser.finish(); int compressedDataLength = compresser.deflate(output); // Decompress the bytes Inflater decompresser = new Inflater(); decompresser.setInput(output, 0, compressedDataLength); byte[] result = new byte[100]; int resultLength = decompresser.inflate(result); decompresser.end(); // Decode the bytes into a String String outputString = new String(result, 0, resultLength, "UTF-8"); } catch(java.io.UnsupportedEncodingException ex) { // handle } catch (java.util.zip.DataFormatException ex) { // handle }
Inflater
フィールドの概要 | |
---|---|
static int |
BEST_COMPRESSION
最適な圧縮のための圧縮レベルです。 |
static int |
BEST_SPEED
最高速での圧縮のための圧縮レベルです。 |
static int |
DEFAULT_COMPRESSION
デフォルトの圧縮レベルです。 |
static int |
DEFAULT_STRATEGY
デフォルトの圧縮方法です。 |
static int |
DEFLATED
deflate アルゴリズムのための圧縮メソッド (現在サポートされているのは 1 つだけ) です。 |
static int |
FILTERED
小さい値がある程度ランダムに分布しているデータに最適な圧縮方法です。 |
static int |
HUFFMAN_ONLY
ハフマン符号化だけのための圧縮方法です。 |
static int |
NO_COMPRESSION
圧縮しない場合の圧縮レベルです。 |
コンストラクタの概要 | |
---|---|
Deflater()
デフォルトの圧縮レベルで新しいコンプレッサを作成します。 |
|
Deflater(int level)
指定された圧縮レベルで新しいコンプレッサを作成します。 |
|
Deflater(int level,
boolean nowrap)
指定された圧縮レベルで新しいコンプレッサを作成します。 |
メソッドの概要 | |
---|---|
int |
deflate(byte[] b)
指定されたバッファーを圧縮データで満たします。 |
int |
deflate(byte[] b,
int off,
int len)
指定されたバッファーを圧縮データで満たします。 |
void |
end()
コンプレッサを閉じ、圧縮解除された入力をすべて破棄します。 |
protected void |
finalize()
ガベージコレクションが行われたときにコンプレッサを閉じます。 |
void |
finish()
このメソッドが呼び出されると、圧縮が入力バッファの現在の内容で終了する必要があることを示します。 |
boolean |
finished()
圧縮データ出力ストリームの最後に達した場合に true を返します。 |
int |
getAdler()
圧縮解除データの ADLER-32 値を返します。 |
long |
getBytesRead()
これまでに入力された、圧縮解除されたバイトの総数を返します。 |
long |
getBytesWritten()
これまでに出力された、圧縮されたバイトの総数を返します。 |
int |
getTotalIn()
これまでに入力された、圧縮解除されたバイトの総数を返します。 |
int |
getTotalOut()
これまでに出力された、圧縮されたバイトの総数を返します。 |
boolean |
needsInput()
入力データバッファが空なので、さらに入力を提供するために setInput() を呼び出す必要がある場合に true を返します。 |
void |
reset()
新しい入力データのセットを処理できるようにデフレータをリセットします。 |
void |
setDictionary(byte[] b)
圧縮のためのプリセットディクショナリを設定します。 |
void |
setDictionary(byte[] b,
int off,
int len)
圧縮のためのプリセットディクショナリを設定します。 |
void |
setInput(byte[] b)
圧縮のための入力データを設定します。 |
void |
setInput(byte[] b,
int off,
int len)
圧縮のための入力データを設定します。 |
void |
setLevel(int level)
現在の圧縮レベルに、指定された値を設定します。 |
void |
setStrategy(int strategy)
圧縮方法を設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final int DEFLATED
public static final int NO_COMPRESSION
public static final int BEST_SPEED
public static final int BEST_COMPRESSION
public static final int DEFAULT_COMPRESSION
public static final int FILTERED
public static final int HUFFMAN_ONLY
public static final int DEFAULT_STRATEGY
コンストラクタの詳細 |
---|
public Deflater(int level, boolean nowrap)
level
- 圧縮レベル (0 〜 9)nowrap
- true の場合は GZIP 互換の圧縮を使用public Deflater(int level)
level
- 圧縮レベル (0 〜 9)public Deflater()
メソッドの詳細 |
---|
public void setInput(byte[] b, int off, int len)
b
- 入力データバイトoff
- データの開始オフセットlen
- データの長さneedsInput()
public void setInput(byte[] b)
b
- 入力データバイトneedsInput()
public void setDictionary(byte[] b, int off, int len)
b
- ディクショナリデータバイトoff
- データの開始オフセットlen
- データの長さInflater.inflate(byte[], int, int)
,
Inflater.getAdler()
public void setDictionary(byte[] b)
b
- ディクショナリデータバイトInflater.inflate(byte[], int, int)
,
Inflater.getAdler()
public void setStrategy(int strategy)
strategy
- 新しい圧縮方法
IllegalArgumentException
- 圧縮方法が無効な場合public void setLevel(int level)
level
- 新しい圧縮レベル (0 〜 9)
IllegalArgumentException
- 圧縮レベルが無効な場合public boolean needsInput()
public void finish()
public boolean finished()
public int deflate(byte[] b, int off, int len)
b
- 圧縮データのためのバッファoff
- データの開始オフセットlen
- 圧縮データの最大バイト数
public int deflate(byte[] b)
b
- 圧縮データのためのバッファ
public int getAdler()
public int getTotalIn()
バイト数は Integer.MAX_VALUE よりも大きくなる場合があるため、この情報を得る場合は getBytesRead()
メソッドの方を優先的に使用してください。
public long getBytesRead()
public int getTotalOut()
バイト数は Integer.MAX_VALUE よりも大きくなる場合があるため、この情報を得る場合は getBytesWritten()
メソッドの方を優先的に使用してください。
public long getBytesWritten()
public void reset()
public void end()
protected void finalize()
Object
内の finalize
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。