システム学習Java IO(十)----バックストリームPushbackInputStream
1944 ワード
ディレクトリ:システム学習Java IO----ディレクトリ、概要
PushbackInputStreamは、InputStreamからデータを解析する際に使用することを目的としています.現在のバイトをどのように解釈するかを判断するには、いくつかのバイトを読み込んでから、PushbackInputStreamで許可する必要がある場合があります.実際には、読み出したバイトをストリームに戻すことができます.これにより、ストリームが受動的ではなく、次回read()が呼び出されると、再び再読み込みされます.通俗的に言えば、男が女に「私は見ているだけで、手を出さない」と言ったようなものだ.
コンストラクタ PushbackInputStream(InputStream in):入力ストリームinからPushbackInputStreamを作成します. PushbackInputStream(InputStreamin,int size):指定したsizeを使用して作成され、sizeはプッシュバックバッファのサイズを表します. 簡単なPushbackInputStreamの例です.
read()への呼び出しは、InputStreamから1バイトを読み出すのと同じです.unread()への呼び出しは、PushbackInputStreamに1バイトを戻します.次にread()を呼び出すと、最初に戻されたバイトが読み出されます.複数バイトが戻されると、スタック上のように、返された最新のワード・セクションが最初にread()から返されます.
フィールドの概要
ストリーム自体はフォールバック機能をサポートしておらず、PushBackInputStreamの内部にはbyte配列が維持されてフォールバック動作を実現している.
PushbackInputStreamの後押し制限の設定
PushbackInputStreamのコンストラクタで読み取り可能なバイト数を設定できます.次に、PushbackInputStreamコンストラクタでロールバック制限を設定する方法を示します.
この例では、8バイトの内部バッファを設定します.これは、最大8バイトを一度に読み取り、プッシュバックできることを意味します.
メソッドの概要
方法
説明
int read(byte[] b, int off, int len)
この入力ストリームから最大len個のデータバイトがbyte配列に読み込まれます.
void unread(byte[] b)
byte配列を戻す:バッファを戻す前にコピーします.
void unread(int b)
≪バイトを戻す|Push Byte|emdw≫:バッファを戻す前にコピーします.
void mark(int readlimit)
現在の位置をマークします.ByteInputStreamと同様に、このようなmark()メソッドでは何も実行されません.
void reset()
このようなreset()メソッドは、アクションを実行せずにIOExceptionのみを放出します.呼び出しは例外です.
PushbackInputStreamは、InputStreamからデータを解析する際に使用することを目的としています.現在のバイトをどのように解釈するかを判断するには、いくつかのバイトを読み込んでから、PushbackInputStreamで許可する必要がある場合があります.実際には、読み出したバイトをストリームに戻すことができます.これにより、ストリームが受動的ではなく、次回read()が呼び出されると、再び再読み込みされます.通俗的に言えば、男が女に「私は見ているだけで、手を出さない」と言ったようなものだ.
コンストラクタ
PushbackInputStream input = new PushbackInputStream(new FileInputStream("c:\\data\\input.txt"));
int data = input.read();
input.unread(data);
read()への呼び出しは、InputStreamから1バイトを読み出すのと同じです.unread()への呼び出しは、PushbackInputStreamに1バイトを戻します.次にread()を呼び出すと、最初に戻されたバイトが読み出されます.複数バイトが戻されると、スタック上のように、返された最新のワード・セクションが最初にread()から返されます.
フィールドの概要
ストリーム自体はフォールバック機能をサポートしておらず、PushBackInputStreamの内部にはbyte配列が維持されてフォールバック動作を実現している.
protected byte[] buf
はバッファをフォールバックする.protected int pos
はバッファ内の位置をフォールバックし、その位置の次のバイトを読み取る.PushbackInputStreamの後押し制限の設定
PushbackInputStreamのコンストラクタで読み取り可能なバイト数を設定できます.次に、PushbackInputStreamコンストラクタでロールバック制限を設定する方法を示します.
int pushbackLimit = 8;
PushbackInputStream input = new PushbackInputStream(
new FileInputStream("c:\\data\\input.txt"),
pushbackLimit);
この例では、8バイトの内部バッファを設定します.これは、最大8バイトを一度に読み取り、プッシュバックできることを意味します.
メソッドの概要
方法
説明
int read(byte[] b, int off, int len)
この入力ストリームから最大len個のデータバイトがbyte配列に読み込まれます.
void unread(byte[] b)
byte配列を戻す:バッファを戻す前にコピーします.
void unread(int b)
≪バイトを戻す|Push Byte|emdw≫:バッファを戻す前にコピーします.
void mark(int readlimit)
現在の位置をマークします.ByteInputStreamと同様に、このようなmark()メソッドでは何も実行されません.
void reset()
このようなreset()メソッドは、アクションを実行せずにIOExceptionのみを放出します.呼び出しは例外です.