Java プラットフォーム 1.2

java.io
クラス PushbackInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.FilterInputStream
              |
              +--java.io.PushbackInputStream

public class PushbackInputStream
extends FilterInputStream

ほかの入力ストリームに機能を追加します。具体的には、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 メソッドを呼び出してその戻り値を返します。

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

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
この入力ストリームから、len バイトまでのデータをバイトの配列に読み込みます。このメソッドでは、まずプッシュバックされたバイトがあればそれを読み込みます。次に、読み込まれたバイトが len バイトより少ない場合、基礎の入力ストリームから読み込みます。このメソッドは、少なくとも 1 バイトが入力できるようになるまでブロックします。
パラメータ:
b - データを読み込むバッファ
off - データの開始オフセット
len - 読み込むバイトの最大数
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがなかった場合は -1
例外:
IOException - 入出力エラーが発生した場合
オーバーライド:
クラス FilterInputStream 内の read
関連項目:
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 メソッドは、それにプッシュバックされたバイト数を足した値を返します。
戻り値:
ブロックせずに入力ストリームから読み込むことができるバイト数
例外:
IOException - 入出力エラーが発生した場合
オーバーライド:
クラス FilterInputStream 内の available
関連項目:
FilterInputStream.in, InputStream.available()

skip

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

PushbackInputStreamskip メソッドはまず、プッシュバックバッファ内にバイトがあればそれをスキップします。次に、さらにバイトをスキップする必要がある場合は、基礎の入力ストリームの skip メソッドを呼び出します。スキップされた実際のバイト数が返されます。

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

markSupported

public boolean markSupported()
この入力ストリームが、mark メソッドと reset メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
戻り値:
このクラスは mark メソッドと reset メソッドをサポートしていないので、false
オーバーライド:
クラス FilterInputStream 内の markSupported
関連項目:
InputStream.mark(int), InputStream.reset()

close

public void close()
           throws IOException
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。
例外:
IOException - 入出力エラーが発生した場合
オーバーライド:
クラス FilterInputStream 内の close

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.