クラスPushbackInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.PushbackInputStream
- すべての実装されたインタフェース:
Closeable,AutoCloseable
public class PushbackInputStream extends FilterInputStream
PushbackInputStreamは、プッシュバック・バイトを内部バッファに 納することで、別の入力ストリー 、つまり"プッシュバック"バイトまたは"unread"バイトの機能を追 します。 これは、特定のバイト値で区切られた不定数のデータ・バイトをコード・フラグメントで読み込むと好都合な状況で役立ちます。終端バイトを読み込むと、コード・フラグメントはそれを「アンリード」できるので、入力ストリー の次の読込み操作では、プッシュバックされたそのバイトを再度読み込むことになります。 たとえば、識別子を構成している文字を表す一連のバイトは、演算子文字を表すバイトで終わることがあります。この 合、識別子を1つ け読み込むジョブを持つメソッドは、演算子を検出するまで読込みを実行し、再度読込みを行うために演算子をプッシュバックすることができます。 - 導入されたバージョン:
- 1.0
-
フィールドのサマリー
フィールドクラスjava.io.FilterInputStreamで宣言されたフィールド
in -
コンストラクタのサマリー
コンストラクタコンストラクタ説明1バイトのプッシュバック・バッファを使用してPushbackInputStreamを作成し、その引数(入力ストリーin)を後で使用するために保存します。PushbackInputStream(InputStream in, int size) 指定されたsizeのプッシュバック・バッファを持つPushbackInputStreamを作成し、その引数である入力ストリーinをあとで使用できるように保存します。 -
メソッドのサマリー
修飾子と型メソッド説明intこの入力ストリー のメソッドの次の呼出しによって、ブロックせずにこの入力ストリー から読み込むことができる(またはスキップできる)推定バイト数を返します。voidclose()この入力ストリー を閉じて、そのストリー に関連するすべてのシステ ・リソースを解放します。voidmark(int readlimit) この入力ストリー の現在位置にマークを設定します。booleanこの入力ストリー がmarkおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。intread()この入力ストリー からデータの次のバイトを読み込みます。intread(byte[] b, int off, int len) 最大lenバイトのデータを、この入力ストリー からバイト配列に読み込みます。voidreset()このストリー を、この入力ストリー で最後にmarkメソッドが呼び出されたときの位置に再配置します。longskip(long n) この入力ストリー からnバイトのデータをスキップして 棄します。voidunread(byte[] b) プッシュバック・バッファの先 にバイト配列をコピーすることによって、バイト配列をプッシュ・バックします。voidunread(byte[] b, int off, int len) プッシュバック・バッファの先 にバイト配列の一部をコピーすることによって、それらのバイトをプッシュ・バックします。voidunread(int b) プッシュバック・バッファの先 に1バイトをコピーすることによって、そのバイトをプッシュ・バックします。クラスjava.io.FilterInputStreamで宣言されたメソッド
readクラスjava.io.InputStreamで宣言されたメソッド
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
フィールド詳細
-
buf
protected byte[] bufプッシュバック・バッファです。- 導入されたバージョン:
- 1.1
-
pos
protected int posプッシュバック・バッファ内の次のバイトの読込み位置です。 バッファが空の 合、posはbuf.lengthに一致し、バッファがいっぱいの 合、posはゼロに一致します。- 導入されたバージョン:
- 1.1
-
-
コンストラクタの詳細
-
PushbackInputStream
public PushbackInputStream(InputStream in, int size) 指定されたsizeのプッシュバック・バッファを持つPushbackInputStreamを作成し、その引数である入力ストリーinをあとで使用できるように保存します。 最初は、プッシュバック・バッファは空です。- パラメータ:
in- バイトの読込み元の入力ストリー 。size- プッシュバック・バッファのサイズ。- スロー:
IllegalArgumentException-size <= 0の 合- 導入されたバージョン:
- 1.1
-
PushbackInputStream
public PushbackInputStream(InputStream in) 1バイトのプッシュバック・バッファを使用してPushbackInputStreamを作成し、その引数(入力ストリーin)を後で使用するために保存します。 最初は、プッシュバック・バッファは空です。- パラメータ:
in- バイトの読込み元の入力ストリー 。
-
-
メソッドの詳細
-
read
public int read() throws IOExceptionこの入力ストリー からデータの次のバイトを読み込みます。 バイト値は、0-255の範囲のintとして返されます。 ストリー の終わりに達したために読み込むバイトがない 合は、-1が返されます。 入力データが読み込めるようになるか、ストリー の終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。このメソッドは、最後にプッシュ・バックされたバイトがある 合にはそれを返します。それがない 合、そのベースとなる入力ストリー の
readメソッドを呼び出してその戻り値を返します。- オーバーライド:
read、クラスFilterInputStream- 戻り値:
- データの次のバイト。ストリー の終わりに達した 合は
-1。 - スロー:
IOException- この入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合、または入出力エラーが発生した 合。- 関連 目:
-
read
public int read(byte[] b, int off, int len) throws IOException 最大lenバイトのデータを、この入力ストリー からバイト配列に読み込みます。 このメソッドは、プッシュバックされたバイトがあればそれらを最初に読み込みます。次に、読み込まれたバイトがlenバイトよりも少ない 合は、ベースとなる入力ストリー から読み込みます。lenが0でない 合、このメソッドは入力の少なくとも1バイトが利用できるようになるまでブロックします。それ以外の 合、バイトは読み込まれず、0が返されます。- オーバーライド:
read、クラスFilterInputStream- パラメータ:
b- データの読込み先のバッファ。off- 転送先配列の開始オフセットblen- 読み込まれる最大バイト数。- 戻り値:
- バッファに読み込まれたバイトの合計数。ストリー の終わりに達してデータがない 合は
-1。 - スロー:
NullPointerException-bがnullである 合。IndexOutOfBoundsException-offが の値の 合、lenが の値の 合、あるいはlenがb.length - offより大きい 合IOException- この入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合、または入出力エラーが発生した 合。- 関連 目:
-
unread
public void unread(int b) throws IOException プッシュバック・バッファの先 に1バイトをコピーすることによって、そのバイトをプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値(byte)bを持ちます。- パラメータ:
b- プッシュ・バックされる下位のバイトを持つint値。- スロー:
IOException- バイトに対して、プッシュバック・バッファに十分なスペースがない 合、またはこの入力ストリー がclose()メソッドの呼出しによって閉じられた 合。
-
unread
public void unread(byte[] b, int off, int len) throws IOException プッシュバック・バッファの先 にバイト配列の一部をコピーすることによって、それらのバイトをプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値b[off]を持ち、その次のバイトは値b[off+1]を持ちます。それ以降も同様に続きます。- パラメータ:
b- プッシュ・バックするバイトの配列。off- データの開始オフセット。len- プッシュ・バックするバイト数。- スロー:
NullPointerException-bがnullである 合。IOException- 指定されたバイト数に対して、プッシュバック・バッファに十分なスペースがない 合、またはこの入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合。- 導入されたバージョン:
- 1.1
-
unread
public void unread(byte[] b) throws IOException プッシュバック・バッファの先 にバイト配列をコピーすることによって、バイト配列をプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値b[0]を持ち、その次のバイトは値b[1]を持ちます。それ以降も同様に続きます。- パラメータ:
b- プッシュ・バックするバイトの配列- スロー:
NullPointerException-bがnullである 合。IOException- 指定されたバイト数に対して、プッシュバック・バッファに十分なスペースがない 合、またはこの入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合。- 導入されたバージョン:
- 1.1
-
available
public int available() throws IOExceptionこの入力ストリー のメソッドの次の呼出しによって、ブロックせずにこの入力ストリー から読み込むことができる(またはスキップできる)推定バイト数を返します。 次の呼出しは、同じスレッドの 合も別のスレッドの 合もあります。 このような多数のバイトを1回で読み込ん りスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。このメソッドは、プッシュ・バックされたバイト数の合計と
availableによって返された値を返します。- オーバーライド:
available、クラスFilterInputStream- 戻り値:
- ブロックせずに入力ストリー から読み込むことができる(またはスキップできる)バイト数。
- スロー:
IOException- この入力ストリー がそのclose()メソッドの呼出しによって閉じられた 合、または入出力エラーが発生した 合。- 関連 目:
-
skip
public long skip(long n) throws IOException この入力ストリー からnバイトのデータをスキップして 棄します。 さまざまな理由から、skipメソッドは指定よりも少ないバイト数しかスキップしないことがあります。0の 合もあります。nが の 合、バイトはスキップされません。PushbackInputStreamのskipメソッドは、ブッシュバック・バッファにバイトが存在すれば、最初にそれらをスキップします。 さらにスキップする必要があるバイトが存在すると、ベースとなる入力ストリー のskipメソッドを呼び出します。 スキップされた実際のバイト数が返されます。- オーバーライド:
skip、クラスFilterInputStream- パラメータ:
n- スキップされるバイト数。- 戻り値:
- 実際にスキップされたバイト数。
- スロー:
IOException- ストリー がclose()メソッドを呼び出してクローズされている 合、in.skip(n)はIOExceptionをスローするか、I/Oエラーが発生します。- 導入されたバージョン:
- 1.2
- 関連 目:
-
markSupported
public boolean markSupported()この入力ストリー がmarkおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。- オーバーライド:
markSupported、クラスFilterInputStream- 戻り値:
- このクラスは
markメソッドとresetメソッドをサポートしていないので、false。 - 関連 目:
-
mark
public void mark(int readlimit) この入力ストリー の現在位置にマークを設定します。PushbackInputStreamのmarkメソッドは何も行いません。- オーバーライド:
mark、クラスFilterInputStream- パラメータ:
readlimit- マーク位置が無効になる前に読込み可能なバイト数の上限。- 関連 目:
-
reset
public void reset() throws IOExceptionこのストリー を、この入力ストリー で最後にmarkメソッドが呼び出されたときの位置に再配置します。PushbackInputStreamクラスのresetメソッドはIOExceptionをスローする以外何も行いません。- オーバーライド:
reset、クラスFilterInputStream- スロー:
IOException- このメソッドが呼び出された 合。- 関連 目:
-
close
public void close() throws IOExceptionこの入力ストリー を閉じて、そのストリー に関連するすべてのシステ ・リソースを解放します。 ストリー が閉じられたあとにread()、unread()、available()、reset()、またはskip()を呼び出すと、IOExceptionがスローされます。 すでに閉じられているストリー を閉じても、何の影響もありません。- 定義:
close、インタフェースAutoCloseable- 定義:
close、インタフェースCloseable- オーバーライド:
close、クラスFilterInputStream- スロー:
IOException- 入出力エラーが発生した 合。- 関連 目:
-