Foundation 1.1.2

java.io
クラス PushbackInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.FilterInputStream
          上位を拡張 java.io.PushbackInputStream

public class PushbackInputStream
extends FilterInputStream

PushbackInputStream は、ほかの入力ストリームに機能を追加します。具体的には、1 バイトを「プッシュバック」または「アンリード」する機能を追加します。これは、特定のバイト値で区切られた不定数のデータバイトをコードフラグメントで読み込むと好都合な状況で役立ちます。終端バイトを読み込むと、コードフラグメントはそれを「アンリード」できるので、入力ストリームの次の読み込み操作では、プッシュバックされたそのバイトを再度読み込むことになります。たとえば、識別子を構成している文字を表す一連のバイトは、演算子文字を表すバイトで終わることがあります。この場合、識別子を 1 つだけ読み込むジョブを持つメソッドは、演算子を検出するまで読み込みを実行し、再度読み込みを行うために演算子をプッシュバックすることができます。

導入されたバージョン:
JDK1.0

フィールドの概要
protected  byte[] buf
          プッシュバックバッファーです。
protected  int pos
          プッシュバックバッファー内の次のバイトの読み込み位置です。
 
クラス java.io.FilterInputStream から継承されたフィールド
in
 
コンストラクタの概要
PushbackInputStream(InputStream in)
          PushbackInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。
PushbackInputStream(InputStream in, int size)
          指定された size のブッシュバックバッファーを持つ PushbackInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。
 
メソッドの概要
 int available()
          ブロックせずに入力ストリームから読み込むことができるバイト数を返します。
 void close()
          この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。
 boolean markSupported()
          この入力ストリームが、mark メソッドと reset メソッドをサポートしているかどうかを判定します。
 int read()
          この入力ストリームからデータの次のバイトを読み込みます。
 int read(byte[] b, int off, int len)
          最大 len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。
 long skip(long n)
          この入力ストリームから n バイト分をスキップおよび破棄します。
 void unread(byte[] b)
          プッシュバックバッファーの先頭にバイト配列をコピーすることによって、バイト配列をプッシュバックします。
 void unread(byte[] b, int off, int len)
          プッシュバックバッファーの先頭にバイト配列の一部をコピーすることによって、それらのバイトをプッシュバックします。
 void unread(int b)
          プッシュバックバッファーの先頭に 1 バイトをコピーすることによって、そのバイトをプッシュバックします。
 
クラス java.io.FilterInputStream から継承されたメソッド
mark, read, reset
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

buf

protected byte[] buf
プッシュバックバッファーです。

導入されたバージョン:
JDK1.1

pos

protected int pos
プッシュバックバッファー内の次のバイトの読み込み位置です。バッファーが空の場合、posbuf.length に一致し、バッファーがいっぱいの場合、pos はゼロに一致します。

導入されたバージョン:
JDK1.1
コンストラクタの詳細

PushbackInputStream

public PushbackInputStream(InputStream in,
                           int size)
指定された size のブッシュバックバッファーを持つ PushbackInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。初期状態では、プッシュバックされたバイトはありません。pushBack フィールドは -1 に初期化されています。

パラメータ:
in - バイトの読み込み元の入力ストリーム
size - プッシュバックバッファーのサイズ
例外:
IllegalArgumentException - サイズが 0 以下の場合
導入されたバージョン:
JDK1.1

PushbackInputStream

public PushbackInputStream(InputStream in)
PushbackInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。初期状態では、プッシュバックされたバイトはありません。pushBack フィールドは -1 に初期化されています。

パラメータ:
in - バイトの読み込み元の入力ストリーム
メソッドの詳細

read

public int read()
         throws IOException
この入力ストリームからデータの次のバイトを読み込みます。値のバイトは、0255 の範囲の int として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1 が返されます。入力データが読み込めるようになるか、ファイルの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。

このメソッドは、最後にプッシュバックされたバイトがある場合にはそれを返します。それがない場合、その基本となる入力ストリームの read メソッドを呼び出してその戻り値を返します。

オーバーライド:
クラス FilterInputStream 内の read
戻り値:
データの次のバイト。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
InputStream.read()

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
最大 len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、プッシュバックされたバイトがあればそれらを最初に読み込みます。次に、読み込まれたバイトが len バイトよりも少ない場合は、基本となる入力ストリームから読み込みます。このメソッドは、少なくとも 1 バイトの入力を利用できるまでブロックされます。

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - データの読み込み先のバッファー
off - データの開始オフセット
len - 読み込まれる最大バイト数
戻り値:
バッファーに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
InputStream.read(byte[], int, int)

unread

public void unread(int b)
            throws IOException
プッシュバックバッファーの先頭に 1 バイトをコピーすることによって、そのバイトをプッシュバックします。このメソッドが復帰すると、次に読み込まれるバイトは値 (byte)b を持ちます。

パラメータ:
b - プッシュバックされる下位のバイトを持つ int
例外:
IOException - バイトに対して、プッシュバックバッファーに十分なスペースがない場合

unread

public void unread(byte[] b,
                   int off,
                   int len)
            throws IOException
プッシュバックバッファーの先頭にバイト配列の一部をコピーすることによって、それらのバイトをプッシュバックします。このメソッドが復帰すると、次に読み込まれるバイトは値 b[off] を持ち、その次のバイトは値 b[off+1] を持ちます。それ以降も同様に続きます。

パラメータ:
b - プッシュバックするバイトの配列
off - データの開始オフセット
len - プッシュバックするバイト数
例外:
IOException - 指定されたバイト数に対して、プッシュバックバッファーに十分なスペースがない場合
導入されたバージョン:
JDK1.1

unread

public void unread(byte[] b)
            throws IOException
プッシュバックバッファーの先頭にバイト配列をコピーすることによって、バイト配列をプッシュバックします。このメソッドが復帰すると、次に読み込まれるバイトは値 b[0] を持ち、その次のバイトは値 b[1] を持ちます。それ以降も同様に続きます。

パラメータ:
b - プッシュバックするバイトの配列
例外:
IOException - 指定されたバイト数に対して、プッシュバックバッファーに十分なスペースがない場合
導入されたバージョン:
JDK1.1

available

public int available()
              throws IOException
ブロックせずに入力ストリームから読み込むことができるバイト数を返します。このメソッドは、基本となる入力ストリームの available メソッドを呼び出します。available メソッドは、それにプッシュバックされたバイト数を足した値を返します。

オーバーライド:
クラス FilterInputStream 内の available
戻り値:
ブロックせずに入力ストリームから読み込むことができるバイト数
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in, InputStream.available()

skip

public long skip(long n)
          throws IOException
この入力ストリームから n バイト分をスキップおよび破棄します。さまざまな理由から、skip メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0 の場合もあります。n が負の場合、バイトはスキップされません。

PushbackInputStreamskip メソッドは、ブッシュバックバッファーにバイトが存在すれば、最初にそれらをスキップします。さらにスキップする必要があるバイトが存在すると、基本となる入力ストリームの skip メソッドを呼び出します。スキップされた実際のバイト数が返されます。

オーバーライド:
クラス FilterInputStream 内の skip
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
1.2
関連項目:
FilterInputStream.in, InputStream.skip(long n)

markSupported

public boolean markSupported()
この入力ストリームが、mark メソッドと reset メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。

オーバーライド:
クラス FilterInputStream 内の markSupported
戻り値:
このクラスは mark メソッドと reset メソッドをサポートしていないので、false
関連項目:
InputStream.mark(int), InputStream.reset()

close

public void close()
           throws IOException
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。

オーバーライド:
クラス FilterInputStream 内の close
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

Foundation 1.1.2

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。