|
nanoJBlend | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
public class FilterInputStream
FilterInputStream は別の入力ストリームをデータソースとして内部に保持して、そのストリームから読み出したデータを変換したりなにか別の機能を追加したりするためのクラスです。
FilterInputStream クラスの実装は単に InputStream のすべてのメソッドをオーバーライドして、メソッドに要求されるすべての処理を保持している入力ストリームに要求するだけです。
FilterInputStream のサブクラスでこれらのメソッドをさらにオーバーライドする、または別のメソッドやフィールドを追加します。
| メソッドの概要 | |
|---|---|
int |
available()
このストリームからブロックすることなく読み込めるバイト数を返します。 |
void |
close()
この入力ストリームをクローズして、ストリームに関連するシステムリソースを解放します。 |
void |
mark(int readlimit)
この入力ストリーム中の現在のアクセス位置をマークします。 |
boolean |
markSupported()
この入力ストリームが mark メソッドと reset メソッドをサポートしているかどうかを返します。 |
int |
read()
入力ストリームから次のバイトを読み込みます。 |
int |
read(byte[] b)
この入力ストリームから最大 b.length バイトまで読み込み、バイト配列 b に格納します。 |
int |
read(byte[] b,
int off,
int len)
このストリームから、最大 len バイトまでのバイトデータをバイト配列 b に読み込みます。 |
void |
reset()
ストリームの読み出しポジションを mark メソッドが最後に呼び出された時点の位置に戻します。 |
long |
skip(long n)
この入力ストリームから n バイト分をスキップして廃棄します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait |
| メソッドの詳細 |
|---|
public int available()
throws IOException
このメソッドは単に内部の入力ストリームの available() を呼び出して、その結果を返します。
InputStream 内の availableIOException - I/Oエラーが発生した場合
public void close()
throws IOException
このメソッドは単に内部の入力ストリームの close() を実行します。
InputStream 内の closeIOException - I/Oエラーが発生した場合public void mark(int readlimit)
reset メソッドを呼び出すことによって、このストリームのアクセス位置を最後にマークされた位置にリセットしたのち、同じバイトを再読み込みできます。
引数 readlimit には、マークされたアクセス位置が無効になるまで、最低限読み出し可能にする必要のあるバイト数を指定します。
このメソッドは単に内部の入力ストリームの mark(readlimit) を実行します。
次のコードは mark メソッドを使った再読み込みの例です。
FilterInputStream fis = (FilterInputStream)is;
byte[] arrayA, arrayB;
...
arrayA = new byte[10];
arrayB = new byte[3];
//assume the stream content from the current position is "0123456789abc"
fis.mark(3); //mark the current position first
fis.read(arrayA); //read 10 bytes ("0123456789") to arrayA
//if no fis.reset() is called then fis.read(arrayB, 0, 3)
//will store "abc" to arrayB
fis.reset(); //call reset() before re-read action (only 3 bytes is guaranteed valid in theory)
fis.read(arrayB); //read 3 guaranteed valid byte to arrayB
...
InputStream 内の markreadlimit - マークされたアクセス位置が無効になるまで読み出し可能とする最大データバイト数public boolean markSupported()
mark メソッドと reset メソッドをサポートしているかどうかを返します。
このメソッドは単に内部の入力ストリームの markSupported() を呼び出して、その結果を返します。
InputStream 内の markSupportedmark メソッドと reset メソッドをサポートしている場合は true 、サポートしていない場合は false
public int read()
throws IOException
int で返され、0から255までの値を持ちます。もしストリームの終端に達しているためにバイトデータが読み込めない場合は -1 を返します。このメソッドは入力データが得られるか、ストリームの終端を検出するか、または例外が発生するまでブロックします。
このメソッドは単に内部の入力ストリームの read() を呼び出して、その結果を返します。
InputStream 内の readIOException - I/Oエラーが発生した場合
public int read(byte[] b)
throws IOException
b.length バイトまで読み込み、バイト配列 b に格納します。このメソッドは何バイトか得られるまでブロックします。
このメソッドは単に read(b, 0, b.length) を呼び出して、その結果を返します。内部の入力ストリームの read(b) を呼び出すのではないことは重要です。 FilterInputStream のサブクラスは、この実装方法に依存します。
InputStream 内の readb - 読み込んだデータを格納するバッファ
IOException - I/Oエラーが発生した場合InputStream.read(byte[])
public int read(byte[] b,
int off,
int len)
throws IOException
len バイトまでのバイトデータをバイト配列 b に読み込みます。何バイトかのデータが得られるまで、このメソッドはブロックします。
このメソッドは単に内部の入力ストリームの read(b, off, len) を呼び出して、その結果を返します。
InputStream 内の readb - 読み込んだデータを格納するバッファoff - データを書き込み始める、配列 b のオフセット位置len - 読み込むバイトデータの最大長
IOException - I/Oエラーが発生した場合InputStream.read(byte[], int, int)
public void reset()
throws IOException
mark メソッドが最後に呼び出された時点の位置に戻します。
このメソッドは単に内部の入力ストリームの reset() を実行します。
ストリームマーカーは、何かの処理の前にストリームの中身を少し読み込む必要のある場合を想定した機能です。一般的に、この機能はパーサーによるデータ処理で頻繁に使われます。パーサーはストリームのデータをいくらか読み込み、もしそのパーサーが扱うべき形式のデータであると判断したら、そのストリームを一気に処理します。もしそうでない場合は、パーサーは例外をスローします。もし例外の送出が readlimit バイトの中で起きるなら、パーサーを使う外側のコードはストリームをリセットして別のパーサーによるデータ処理を試みます。
InputStream 内の resetIOException - ストリームがマークされていない場合、またはマークが無効になっている場合
public long skip(long n)
throws IOException
n バイト分をスキップして廃棄します。
skip メソッドは、指定したより少ないバイト数(場合によっては0バイト)しかスキップしない場合があり得ます。実際にスキップされたバイト数が返されます。
このメソッドは単に内部の入力ストリームの skip(n) を呼び出して、その結果を返します。
InputStream 内の skipn - スキップするバイト数
IOException - I/Oエラーが発生した場合InputStream.skip(long)
|
nanoJBlend | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||