JavaTM 2 Platform
Standard Ed. 5.0

java.io
クラス PushbackInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.FilterInputStream
          上位を拡張 java.io.PushbackInputStream
すべての実装されたインタフェース:
Closeable

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()
          この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。
 void mark(int readlimit)
          この入力ストリームの現在位置にマークを設定します。
 boolean markSupported()
          この入力ストリームが、mark メソッドと reset メソッドをサポートしているかどうかを判定します。
 int read()
          この入力ストリームから、データの次のバイトを読み込みます。
 int read(byte[] b, int off, int len)
          この入力ストリームから、len バイトまでのデータをバイトの配列に読み込みます。
 void reset()
          このストリームの位置を、入力ストリームで最後に mark メソッドが呼び出されたときのマーク位置に再設定します。
 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 から継承されたメソッド
read
 
クラス 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 メソッドは、指定されたよりも少ないバイト数 (ゼロの場合もある) しかスキップしないことがあります。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()

mark

public void mark(int readlimit)
この入力ストリームの現在位置にマークを設定します。

PushbackInputStreammark メソッドは何も行いません。

オーバーライド:
クラス FilterInputStream 内の mark
パラメータ:
readlimit - マーク位置が無効になる前に読み込み可能なバイトの最大リミット
関連項目:
InputStream.reset()

reset

public void reset()
           throws IOException
このストリームの位置を、入力ストリームで最後に mark メソッドが呼び出されたときのマーク位置に再設定します。

PushbackInputStream クラスの reset メソッドは、IOException をスローする以外何も行いません。

オーバーライド:
クラス FilterInputStream 内の reset
例外:
IOException - このメソッドが呼び出された場合
関連項目:
InputStream.mark(int), IOException

close

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

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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