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
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明PushbackInputStreamを1バイトのプッシュバック・バッファで作成し、その引数である入力ストリーム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
- 
フィールド詳細- 
bufprotected byte[] bufプッシュバック・バッファです。- 導入されたバージョン:
- 1.1
 
- 
posprotected int posプッシュバック・バッファ内の次のバイトの読込み位置です。 バッファが空の場合、posはbuf.lengthに一致し、バッファがいっぱいの場合、posはゼロに一致します。- 導入されたバージョン:
- 1.1
 
 
- 
- 
コンストラクタの詳細- 
PushbackInputStreampublic PushbackInputStream(InputStream in, int size) 指定されたsizeのプッシュバック・バッファを持つPushbackInputStreamを作成し、その引数である入力ストリームinをあとで使用できるように保存します。 最初は、プッシュバック・バッファは空です。- パラメータ:
- in- バイトの読込み元の入力ストリーム。
- size- プッシュバック・バッファのサイズ。
- 例外:
- IllegalArgumentException-- size <= 0の場合
- 導入されたバージョン:
- 1.1
 
- 
PushbackInputStreampublic PushbackInputStream(InputStream in) PushbackInputStreamを1バイトのプッシュバック・バッファで作成し、その引数である入力ストリームinを後で使用するために保存します。 最初は、プッシュバック・バッファは空です。- パラメータ:
- in- バイトの読込み元の入力ストリーム。
 
 
- 
- 
メソッドの詳細- 
readpublic int read() throws IOExceptionこの入力ストリームからデータの次のバイトを読み込みます。 バイト値は、0-255の範囲のintとして返されます。 ストリームの終わりに達したために読み込むバイトがない場合は、-1が返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。このメソッドは、最後にプッシュ・バックされたバイトがある場合にはそれを返します。それがない場合、そのベースとなる入力ストリームの readメソッドを呼び出してその戻り値を返します。- オーバーライド:
- read、クラス:- FilterInputStream
- 戻り値:
- データの次のバイト。ストリームの終わりに達した場合は-1。
- 例外:
- IOException- この入力ストリームがその- close()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。
- 関連項目:
 
- 
readpublic int read(byte[] b, int off, int len) throws IOException 最大lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。 このメソッドは、プッシュバックされたバイトがあればそれらを最初に読み込みます。次に、読み込まれたバイトがlenバイトよりも少ない場合は、ベースとなる入力ストリームから読み込みます。lenが0でない場合、このメソッドは入力の少なくとも1バイトが利用できるようになるまでブロックします。それ以外の場合、バイトは読み込まれず、0が返されます。- オーバーライド:
- read、クラス:- FilterInputStream
- パラメータ:
- b- データの読込み先のバッファ。
- off- 転送先配列の開始オフセット- b
- len- 読み込まれる最大バイト数。
- 戻り値:
- バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は-1。
- 例外:
- NullPointerException-- bが- nullである場合。
- IndexOutOfBoundsException-- offが負の値の場合、- lenが負の値の場合、あるいは- lenが- b.length - offより大きい場合
- IOException- この入力ストリームがその- close()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。
- 関連項目:
 
- 
unreadpublic void unread(int b) throws IOException プッシュバック・バッファの先頭に1バイトをコピーすることによって、そのバイトをプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値(byte)bを持ちます。- パラメータ:
- b- プッシュ・バックされる下位のバイトを持つ- int値。
- 例外:
- IOException- バイトに対して、プッシュバック・バッファに十分なスペースがない場合、またはこの入力ストリームが- close()メソッドの呼出しによって閉じられた場合。
 
- 
unreadpublic 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
 
- 
unreadpublic void unread(byte[] b) throws IOException プッシュバック・バッファの先頭にバイト配列をコピーすることによって、バイト配列をプッシュ・バックします。 このメソッドが復帰すると、次に読み込まれるバイトは値b[0]を持ち、その次のバイトは値b[1]を持ちます。それ以降も同様に続きます。- パラメータ:
- b- プッシュ・バックするバイトの配列
- 例外:
- NullPointerException-- bが- nullである場合。
- IOException- 指定されたバイト数に対して、プッシュバック・バッファに十分なスペースがない場合、またはこの入力ストリームがその- close()メソッドの呼出しによって閉じられた場合。
- 導入されたバージョン:
- 1.1
 
- 
availablepublic int available() throws IOExceptionこの入力ストリームのメソッドの次の呼出しによって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。 次の呼出しは、同じスレッドの場合も別のスレッドの場合もあります。 このような多数のバイトを1回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。このメソッドは、プッシュ・バックされたバイト数の合計と availableによって返された値を返します。- オーバーライド:
- available、クラス:- FilterInputStream
- 戻り値:
- ブロックせずに入力ストリームから読み込むことができる(またはスキップできる)バイト数。
- 例外:
- IOException- この入力ストリームがその- close()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。
- 関連項目:
 
- 
skippublic 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
- 関連項目:
 
- 
markSupportedpublic boolean markSupported()この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。- オーバーライド:
- markSupported、クラス:- FilterInputStream
- 戻り値:
- このクラスはmarkメソッドとresetメソッドをサポートしていないので、false。
- 関連項目:
 
- 
markpublic void mark(int readlimit) この入力ストリームの現在位置にマークを設定します。PushbackInputStreamのmarkメソッドは何も行いません。- オーバーライド:
- mark、クラス:- FilterInputStream
- パラメータ:
- readlimit- マーク位置が無効になる前に読込み可能なバイト数の上限。
- 関連項目:
 
- 
resetpublic void reset() throws IOExceptionこのストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。PushbackInputStreamクラスのresetメソッドはIOExceptionをスローする以外何も行いません。- オーバーライド:
- reset、クラス:- FilterInputStream
- 例外:
- IOException- このメソッドが呼び出された場合。
- 関連項目:
 
- 
closepublic void close() throws IOExceptionこの入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。 ストリームが閉じられたあとにread()、unread()、available()、reset()、またはskip()を呼び出すと、IOExceptionがスローされます。 すでに閉じられているストリームを閉じても、何の影響もありません。- 定義:
- close、インタフェース:- AutoCloseable
- 定義:
- close、インタフェース:- Closeable
- オーバーライド:
- close、クラス:- FilterInputStream
- 例外:
- IOException- 入出力エラーが発生した場合。
- 関連項目:
 
 
-