|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.io.InputStream java.io.FilterInputStream
public class FilterInputStream
FilterInputStream
は、データの基本的なソースとして使用するためのその他の入力ストリームを格納します。データを途中で変換することや、追加機能を提供することもあります。FilterInputStream
クラスそのものが、格納されている入力ストリームにすべての要求を渡すバージョンによって、InputStream
のすべてのメソッドを単純にオーバーライドします。FilterInputStream
のサブクラスは、これらのメソッドの一部をさらにオーバーライドすることができ、追加のメソッドやフィールドを提供することもできます。
フィールドの概要 | |
---|---|
protected InputStream |
in
フィルタ処理される入力ストリームです。 |
コンストラクタの概要 | |
---|---|
protected |
FilterInputStream(InputStream in)
あとで使用できるように引数 in を this.in フィールドに割り当てることによって、FilterInputStream を作成します。 |
メソッドの概要 | |
---|---|
int |
available()
この入力ストリームのメソッドの次の呼び出し側によって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。 |
void |
close()
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。 |
void |
mark(int readlimit)
この入力ストリームの現在位置にマークを設定します。 |
boolean |
markSupported()
入力ストリームが mark と reset メソッドをサポートしているかどうかを判定します。 |
int |
read()
この入力ストリームからデータの次のバイトを読み込みます。 |
int |
read(byte[] b)
最大 byte.length バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。 |
int |
read(byte[] b,
int off,
int len)
最大 len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。 |
void |
reset()
このストリームの位置を、入力ストリームで最後に mark メソッドが呼び出されたときのマーク位置に再設定します。 |
long |
skip(long n)
この入力ストリームから n バイト分をスキップおよび破棄します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
protected volatile InputStream in
コンストラクタの詳細 |
---|
protected FilterInputStream(InputStream in)
in
を this.in
フィールドに割り当てることによって、FilterInputStream
を作成します。
in
- 基本となる入力ストリーム。このインスタンスが基本となるストリームなしで生成される場合は null
メソッドの詳細 |
---|
public int read() throws IOException
0
〜 255
の範囲の int
として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1
が返されます。入力データが読み込めるようになるか、ファイルの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。
このメソッドは単純に in.read()
を実行し、その結果を返します。
InputStream
内の read
-1
IOException
- 入出力エラーが発生した場合in
public int read(byte[] b) throws IOException
byte.length
バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、入力の一部が利用できるようになるまでブロックします。
このメソッドは単純に read(b, 0, b.length)
の呼び出しを実行し、その結果を返します。代わりに in.read(b)
が実行されないようにしてください。FilterInputStream
の特定のサブクラスは、実際に使用されている実装方法に依存します。
InputStream
内の read
b
- データの読み込み先のバッファ
-1
IOException
- 入出力エラーが発生した場合read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。len
が 0 でない場合、このメソッドは入力の一部が利用できるようになるまでブロックします。そうでない場合、バイトは読み込まれず、0
が返されます。
このメソッドは単純に in.read(b, off, len)
を実行し、その結果を返します。
InputStream
内の read
b
- データの読み込み先のバッファoff
- 転送先の配列 b
内での開始オフセットlen
- 読み込まれる最大バイト数
-1
NullPointerException
- b
が null
の場合
IndexOutOfBoundsException
- off
が負の場合、len
が負の場合、または len
が b.length - off
よりも大きい場合
IOException
- 入出力エラーが発生した場合in
public long skip(long n) throws IOException
n
バイト分をスキップおよび破棄します。さまざまな理由から、skip
メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0
の場合もあります。このスキップは複数の条件に起因する可能性がありますが、考えられる唯一の場合は、n
バイトがスキップされる前にファイルの終わりに達した場合です。スキップされた実際のバイト数が返されます。n
が負の場合、バイトはスキップされません。
このクラスの skip
メソッドはバイト配列を作成し、n
バイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。サブクラスでこのメソッドを実装する場合は、より効率的に実装してください。たとえば、実装はシークの機能に依存する可能性があります。
このメソッドは単純に in.skip(n)
を実行します。
InputStream
内の skip
n
- スキップするバイト数
IOException
- ストリームがシークをサポートしない場合、またはその他の入出力エラーが発生した場合public int available() throws IOException
このメソッドが返すのは in
.available() の結果です。
InputStream
内の available
IOException
- 入出力エラーが発生した場合public void close() throws IOException
in.close()
を実行します。
Closeable
内の close
InputStream
内の close
IOException
- 入出力エラーが発生した場合in
public void mark(int readlimit)
reset
メソッドを呼び出すと、最後にマークが設定された位置にストリームを再設定するため、次回の読み込み操作では同じバイトから読み込むことになります。
引数 readlimit
はこの入力ストリームに対して、マーク位置が無効になる前にこの引数が指定するバイト数を読み込むように指示します。
このメソッドは単純に in.mark(readlimit)
を実行します。
InputStream
内の mark
readlimit
- マーク位置が無効になる前に読み込み可能なバイトの最大リミットin
,
reset()
public void reset() throws IOException
mark
メソッドが呼び出されたときのマーク位置に再設定します。
このメソッドは単純に in.reset()
を実行します。
ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。ストリームがこのようなタイプではない場合は、パーサーは失敗した時点で例外を発生させます。readlimit バイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。
InputStream
内の reset
IOException
- ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合in
,
mark(int)
public boolean markSupported()
mark
と reset
メソッドをサポートしているかどうかを判定します。このメソッドは単純に in.markSupported()
を実行します。
- オーバーライド:
- クラス
InputStream
内の markSupported
- 戻り値:
- ストリームが
mark
と reset
メソッドをサポートするタイプの場合は true
、そうでない場合は false
- 関連項目:
in
,
InputStream.mark(int)
,
InputStream.reset()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。