public class Inflater extends Object
次に、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 }
Deflater
コンストラクタと説明 |
---|
Inflater()
新しいデコンプレッサを作成します。
|
Inflater(boolean nowrap)
新しいデコンプレッサを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
end()
デコンプレッサを閉じ、圧縮解除された入力をすべて破棄します。
|
protected void |
finalize()
ガベージ・コレクションが行われたときにデコンプレッサを閉じます。
|
boolean |
finished()
圧縮データ・ストリームの最後に達した場合にtrueを返します。
|
int |
getAdler()
圧縮解除データのADLER-32値を返します。
|
long |
getBytesRead()
これまでに入力された、圧縮されたバイトの総数を返します。
|
long |
getBytesWritten()
これまでに出力された、圧縮解除されたバイトの総数を返します。
|
int |
getRemaining()
入力バッファに残っているバイトの総数を返します。
|
int |
getTotalIn()
これまでに入力された、圧縮されたバイトの総数を返します。
|
int |
getTotalOut()
これまでに出力された、圧縮解除されたバイトの総数を返します。
|
int |
inflate(byte[] b)
指定されたバッファにバイトを圧縮解除します。
|
int |
inflate(byte[] b, int off, int len)
指定されたバッファにバイトを圧縮解除します。
|
boolean |
needsDictionary()
プリセット・ディクショナリが圧縮解除に必要な場合にtrueを返します。
|
boolean |
needsInput()
入力バッファにデータが残っていない場合に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)
圧縮解除のための入力データを設定します。
|
public Inflater(boolean nowrap)
注: nowrapオプションを使用する場合は、入力として特別な「ダミー」バイトを指定する必要があります。これは、最適化を行うためにZLIBネイティブ・ライブラリで必要となります。
nowrap
- trueの場合はGZIP互換の圧縮をサポートpublic Inflater()
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
- データの長さneedsDictionary()
, getAdler()
public void setDictionary(byte[] b)
b
- ディクショナリ・データ・バイトneedsDictionary()
, getAdler()
public int getRemaining()
public boolean needsInput()
public boolean needsDictionary()
setDictionary(byte[], int, int)
public boolean finished()
public int inflate(byte[] b, int off, int len) throws DataFormatException
b
- 圧縮解除されるデータ用のバッファoff
- データの開始オフセットlen
- 圧縮解除される最大バイト数DataFormatException
- 圧縮データ形式が無効な場合needsInput()
, needsDictionary()
public int inflate(byte[] b) throws DataFormatException
b
- 圧縮解除されるデータ用のバッファDataFormatException
- 圧縮データ形式が無効な場合needsInput()
, needsDictionary()
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()
finalize
、クラス: Object
WeakReference
, PhantomReference
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.