|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.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
内の read
b
- データの読み込み先のバッファ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
内の available
IOException
- この入力ストリームが close()
メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合FilterInputStream.in
,
InputStream.available()
public long skip(long n) throws IOException
n
バイト分をスキップおよび破棄します。さまざまな理由から、skip
メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0 の場合もあります。n
が負の場合、バイトはスキップされません。
PushbackInputStream
の skip
メソッドは、ブッシュバックバッファーにバイトが存在すれば、最初にそれらをスキップします。さらにスキップする必要があるバイトが存在すると、基本となる入力ストリームの skip
メソッドを呼び出します。スキップされた実際のバイト数が返されます。
FilterInputStream
内の skip
n
- スキップするバイト数
IOException
- ストリームがシークをサポートしていない場合、ストリームが close()
メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合FilterInputStream.in
,
InputStream.skip(long n)
public boolean markSupported()
mark
メソッドと reset
メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
FilterInputStream
内の markSupported
mark
メソッドと reset
メソッドをサポートしていないので、false
InputStream.mark(int)
,
InputStream.reset()
public void mark(int readlimit)
PushbackInputStream
の mark
メソッドは何も行いません。
FilterInputStream
内の mark
readlimit
- マーク位置が無効になる前に読み込み可能なバイトの最大リミットInputStream.reset()
public void reset() throws IOException
mark
メソッドが呼び出されたときのマーク位置に再設定します。
PushbackInputStream
クラスの reset
メソッドは、IOException
をスローする以外何も行いません。
FilterInputStream
内の reset
IOException
- このメソッドが呼び出された場合InputStream.mark(int)
,
IOException
public void close() throws IOException
Closeable
内の close
FilterInputStream
内の close
IOException
- 入出力エラーが発生した場合FilterInputStream.in
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。