|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
java.io.PushbackInputStream
public class PushbackInputStream
PushbackInputStream は、ほかの入力ストリームに機能を追加します。具体的には、1 バイトを「プッシュバック」または「アンリード」する機能を追加します。これは、特定のバイト値で区切られた不定数のデータバイトをコードフラグメントで読み込むと好都合な状況で役立ちます。終端バイトを読み込むと、コードフラグメントはそれを「アンリード」できるので、入力ストリームの次の読み込み操作では、プッシュバックされたそのバイトを再度読み込むことになります。たとえば、識別子を構成している文字を表す一連のバイトは、演算子文字を表すバイトで終わることがあります。この場合、識別子を 1 つだけ読み込むジョブを持つメソッドは、演算子を検出するまで読み込みを実行し、再度読み込みを行うために演算子をプッシュバックすることができます。
| フィールドの概要 | |
|---|---|
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 |
| フィールドの詳細 |
|---|
protected byte[] buf
protected int pos
pos は buf.length に一致し、バッファーがいっぱいの場合、pos はゼロに一致します。
| コンストラクタの詳細 |
|---|
public PushbackInputStream(InputStream in,
int size)
size のブッシュバックバッファーを持つ PushbackInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。初期状態では、プッシュバックされたバイトはありません。pushBack フィールドは -1 に初期化されています。
in - バイトの読み込み元の入力ストリームsize - プッシュバックバッファーのサイズ
IllegalArgumentException - サイズが 0 以下の場合public PushbackInputStream(InputStream in)
PushbackInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。初期状態では、プッシュバックされたバイトはありません。pushBack フィールドは -1 に初期化されています。
in - バイトの読み込み元の入力ストリーム| メソッドの詳細 |
|---|
public int read()
throws IOException
0 〜 255 の範囲の int として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1 が返されます。入力データが読み込めるようになるか、ファイルの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。
このメソッドは、最後にプッシュバックされたバイトがある場合にはそれを返します。それがない場合、その基本となる入力ストリームの read メソッドを呼び出してその戻り値を返します。
FilterInputStream 内の read-1
IOException - この入力ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合InputStream.read()
public int read(byte[] b,
int off,
int len)
throws IOException
len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、プッシュバックされたバイトがあればそれらを最初に読み込みます。次に、読み込まれたバイトが len バイトよりも少ない場合は、基本となる入力ストリームから読み込みます。len が 0 でない場合、このメソッドは入力の少なくとも 1 バイトが利用できるようになるまでブロックします。そうでない場合、バイトは読み込まれず、0 が返されます。
FilterInputStream 内の readb - データの読み込み先のバッファーoff - 転送先の配列 b 内での開始オフセットlen - 読み込まれる最大バイト数
-1
NullPointerException - b が null の場合
IndexOutOfBoundsException - off が負の場合、len が負の場合、または len が b.length - off よりも大きい場合
IOException - この入力ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合InputStream.read(byte[], int, int)
public void unread(int b)
throws IOException
(byte)b を持ちます。
b - プッシュバックされる下位のバイトを持つ int 値
IOException - バイトに対して、プッシュバックバッファーに十分なスペースがない場合、またはこの入力ストリームが close() メソッドの呼び出しによって閉じられた場合
public void unread(byte[] b,
int off,
int len)
throws IOException
b[off] を持ち、その次のバイトは値 b[off+1] を持ちます。それ以降も同様に続きます。
b - プッシュバックするバイトの配列off - データの開始オフセットlen - プッシュバックするバイト数
IOException - 指定されたバイト数に対して、プッシュバックバッファーに十分なスペースがない場合、またはこの入力ストリームが close() メソッドの呼び出しによって閉じられた場合
public void unread(byte[] b)
throws IOException
b[0] を持ち、その次のバイトは値 b[1] を持ちます。それ以降も同様に続きます。
b - プッシュバックするバイトの配列
IOException - 指定されたバイト数に対して、プッシュバックバッファーに十分なスペースがない場合、またはこの入力ストリームが close() メソッドの呼び出しによって閉じられた場合
public int available()
throws IOException
このメソッドは、プッシュバックされたバイト数の合計と available によって返された値を返します。
FilterInputStream 内の availableIOException - この入力ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合FilterInputStream.in,
InputStream.available()
public long skip(long n)
throws IOException
n バイト分をスキップおよび破棄します。さまざまな理由から、skip メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0 の場合もあります。n が負の場合、バイトはスキップされません。
PushbackInputStream の skip メソッドは、ブッシュバックバッファーにバイトが存在すれば、最初にそれらをスキップします。さらにスキップする必要があるバイトが存在すると、基本となる入力ストリームの skip メソッドを呼び出します。スキップされた実際のバイト数が返されます。
FilterInputStream 内の skipn - スキップするバイト数
IOException - ストリームがシークをサポートしていない場合、ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合FilterInputStream.in,
InputStream.skip(long n)public boolean markSupported()
mark メソッドと reset メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
FilterInputStream 内の markSupportedmark メソッドと reset メソッドをサポートしていないので、falseInputStream.mark(int),
InputStream.reset()public void mark(int readlimit)
PushbackInputStream の mark メソッドは何も行いません。
FilterInputStream 内の markreadlimit - マーク位置が無効になる前に読み込み可能な最大限度のバイト数InputStream.reset()
public void reset()
throws IOException
mark メソッドが呼び出されたときのマーク位置に再設定します。
PushbackInputStream クラスの reset メソッドは、IOException をスローする以外何も行いません。
FilterInputStream 内の resetIOException - このメソッドが呼び出された場合InputStream.mark(int),
IOException
public void close()
throws IOException
Closeable 内の closeFilterInputStream 内の closeIOException - 入出力エラーが発生した場合FilterInputStream.in
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。