public class FilterInputStream extends InputStream
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バイトのデータをスキップして破棄します。 |
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()を実行し、その結果を返します。
read、クラスInputStream-1。IOException - 入出力エラーが発生した場合。inpublic int read(byte[] b)
throws IOException
byte.lengthバイトのデータを、この入力ストリームからバイト配列に読み込みます。 このメソッドは、入力の一部が利用できるようになるまでブロックします。
このメソッドは単純にread(b, 0, b.length)の呼出しを実行し、その結果を返します。 代わりにin.read(b)が実行されないようにしてください。FilterInputStreamの特定のサブクラスは、実際に使用されている実装方法に依存します。
read、クラスInputStreamb - データの読込み先のバッファ。-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)を実行し、その結果を返します。
read、クラスInputStreamb - データの読込み先のバッファ。off - 転送先配列bの開始オフセットlen - 読み込まれる最大バイト数。-1。NullPointerException - bがnullである場合。IndexOutOfBoundsException - offが負の値の場合、lenが負の値の場合、あるいはlenがb.length - offより大きい場合IOException - 入出力エラーが発生した場合。inpublic long skip(long n)
throws IOException
nバイトのデータをスキップして破棄します。 さまざまな理由から、skipメソッドは指定よりも少ないバイト数しかスキップしないことがあります。0の場合もあります。 スキップされた実際のバイト数が返されます。
このメソッドは単純にin.skip(n)を実行します。
skip、クラスInputStreamn - スキップされるバイト数。IOException - ストリームがシークをサポートしない場合、またはその他の入出力エラーが発生した場合。public int available()
throws IOException
このメソッドは、in.available()の結果を返します。
available、クラスInputStreamIOException - 入出力エラーが発生した場合。public void close()
throws IOException
in.close()を実行します。 close、インタフェースCloseableclose、インタフェースAutoCloseableclose、クラスInputStreamIOException - 入出力エラーが発生した場合。inpublic void mark(int readlimit)
resetメソッドを呼び出すと、最後にマークされた位置にこのストリームが再配置されるため、以降の読込みでは同じバイトが再度読み込まれます。
引数readlimitはこの入力ストリームに対して、マーク位置が無効になる前にこの引数が指定するバイト数を読み込むように指示します。
このメソッドは単純にin.mark(readlimit)を実行します。
mark、クラスInputStreamreadlimit - マーク位置が無効になる前に読込み可能なバイト数の上限。in, reset()public void reset()
throws IOException
markメソッドが呼び出されたときの位置に再配置します。
このメソッドは単純にin.reset()を実行します。
ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。 これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。 ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。 ストリームがこのようなタイプではない場合は、パーサーは失敗した時点で例外を発生させます。 readlimitバイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。
reset、クラスInputStreamIOException - ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合。in, mark(int)public boolean markSupported()
markおよびresetメソッドをサポートしているかどうかを判定します。 このメソッドは単純にin.markSupported()を実行します。 markSupported、クラスInputStreammarkおよびresetメソッドをサポートしている場合はtrue、それ以外の場合はfalse。in, InputStream.mark(int), InputStream.reset() バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。