|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
- 入出力エラーが発生した場合InputStream.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)
public void unread(int b) throws IOException
(byte)b
を持ちます。
b
- プッシュバックされる下位のバイトを持つ int
値
IOException
- バイトに対して、プッシュバックバッファに十分なスペースがない場合public void unread(byte[] b, int off, int len) throws IOException
b[off]
、その次のバイトは値 b[off+1]
と、値を順次保持していきます。
b
- プッシュバックするバイトの配列off
- データの開始オフセットlen
- プッシュバックするバイト数
IOException
- 指定されたバイト数に対して、プッシュバックバッファに十分なスペースがない場合public void unread(byte[] b) throws IOException
b[0]
、その次のバイトは値 b[1]
と、値を順次保持していきます。
b
- プッシュバックするバイトの配列
IOException
- 指定されたバイト数に対して、プッシュバックバッファに十分なスペースがない場合public int available() throws IOException
available
メソッドを呼び出します。available
メソッドは、それにプッシュバックされたバイト数を足した値を返します。
FilterInputStream
内の available
IOException
- 入出力エラーが発生した場合FilterInputStream.in
,
InputStream.available()
public long skip(long n) throws IOException
n
バイトだけスキップして破棄します。さまざまな理由から、skip
メソッドは、指定されたよりも少ないバイト数 (ゼロの場合もある) しかスキップしないことがあります。n
が負の場合、バイトはスキップされません。
PushbackInputStream
の skip
メソッドはまず、プッシュバックバッファ内にバイトがあればそれをスキップします。次に、さらにバイトをスキップする必要がある場合は、基本となる入力ストリームの skip
メソッドを呼び出します。スキップされた実際のバイト数が返されます。
FilterInputStream
内の skip
n
- スキップするバイト数
IOException
- 入出力エラーが発生した場合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 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。