|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.io.InputStream | +--com.jblend.io.InflateInputStream
InflateInputStreamクラスはdeflate形式で圧縮されたデータストリームに対して展開し、元のデータに復元する機能を提供します。InflateInputStreamはInputStreamのサブクラスです。
InflateInputStream がオーバーライドしていないInputStream のメソッドの振る舞いは、InputStreamのデフォルト動作であり、表1のようになります。
メソッド | 処理 |
---|---|
int available() | 0を返す |
void mark(int readlimit) | 何もしない |
boolean markSupported() | falseを返す |
void reset() | IOException例外を発生するのみ |
long skip(long n) | 指定されたバイト数分、あるいはストリームの終端に達するまでinflateデータを読み飛ばす |
// InflateInputStreamを使ったサンプルコード // httpで通信し、Content-EncodingがdeflateならInflateInputStreamを使う // 読み込みのサンプルとして、バッファ一括read()を使用している private byte[] sampleInflateHttpData( String url ) throws IOException { HttpConnection c = null; InputStream is = null; try { c = (HttpConnection)Connector.open( url ); String encoding = c.getEncoding(); if ( ( encoding != null ) && encoding.equals( "deflate" ) ) { //コンテンツがdeflate圧縮されていたらInflateInputStreamを生成 is = new InflateInputStream( c.openInputStream() ); } else { is = c.openInputStream(); } ByteArrayOutputStream byteArr = new ByteArrayOutputStream(); // 展開後のデータを格納 byte[] b = new byte[ 256 ]; int len; while ( ( len = is.read( b ) ) >= 0 ) { //infalte展開データをバッファに読み込み byteArr.write( b, 0, len ); //出力ストリームに書き出す } return byteArr.toByteArray(); //出力ストリームに書き出したデータをバイト配列に格納する } finally { if ( is != null ) { try { is.close(); } catch ( IOException e ) { } //InputInflateStreamをクローズ } if ( c != null ) { try { c.close(); } catch ( IOException e ) { } //HttpConnectionをクローズ } } }
コンストラクタの概要 | |
InflateInputStream(java.io.InputStream in)
InflateInputStreamオブジェクトを生成します。 |
メソッドの概要 | |
void |
close()
ストリームを閉じます。 |
int |
read()
inflate 展開後のデータを 1 バイト読み込み、返します。 |
int |
read(byte[] b)
inflate 展開後のデータを、指定されたバッファに読み出します。 |
int |
read(byte[] b,
int off,
int len)
inflate 展開後のデータを、指定されたバッファに、指定されたオフセットから 最大指定された長さだけ読み込みます。 |
クラス java.io.InputStream から継承したメソッド |
available, mark, markSupported, reset, skip |
クラス java.lang.Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public InflateInputStream(java.io.InputStream in)
in
- deflateされたデータを取得するストリームメソッドの詳細 |
public int read() throws java.io.IOException
java.io.InputStream
内の read
java.io.IOException
- 入出力エラーが発生した場合public int read(byte[] b, int off, int len) throws java.io.IOException
内部でバッファリングしているデータのサイズとパフォーマンスの関係上、 引数で指定したバッファを必ずしも満たすとは限りません。 残りデータがまだ十分にあるにもかかわらず、読み込みサイズ(len-offバイト)よりも 少ないサイズしかデータを読み込まない場合があります。 データがストリームの終端に達した場合は -1 を返すので、展開したデータをすべて取得したい場合は、 このメソッドが -1 を返すまで繰り返し呼び出しを行ってください。
java.io.InputStream
内の read
b
- データの読み込み先のバッファoff
- データが書き込まれる配列bの開始オフセットlen
- 読み込む最大バイト数java.io.IOException
- 入出力エラーが発生した場合public int read(byte[] b) throws java.io.IOException
内部でバッファリングしているデータのサイズとパフォーマンスの関係上、 引数で指定したバッファを必ずしも満たすとは限りません。 残りデータがまだ十分にあるにもかかわらず、読み込みサイズ(len-offバイト)よりも 少ないサイズしかデータを読み込まない場合があります。 データがストリームの終端に達した場合は -1 を返すので、展開したデータをすべて取得したい場合は、 このメソッドが -1 を返すまで繰り返し呼び出しを行ってください。
java.io.InputStream
内の read
b
- データの読み込み先のバッファjava.io.IOException
- 入出力エラーが発生した場合public void close() throws java.io.IOException
java.io.InputStream
内の close
java.io.IOException
- 入出力エラーが発生した場合
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |