|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
public class FilterInputStream
FilterInputStream は、データの基本的なソースとして使用するためのその他の入力ストリームを格納します。データを途中で変換することや、追加機能を提供することもあります。FilterInputStream クラスそのものが、格納されている入力ストリームにすべての要求を渡すバージョンによって、InputStream のすべてのメソッドを単純にオーバーライドします。FilterInputStream のサブクラスは、これらのメソッドの一部をさらにオーバーライドすることができ、追加のメソッドやフィールドを提供することもできます。
| フィールドの概要 | |
|---|---|
protected InputStream |
in
フィルタ処理される入力ストリームです。 |
| コンストラクタの概要 | |
|---|---|
protected |
FilterInputStream(InputStream in)
あとで使用できるように引数 in を this.in フィールドに割り当てることによって、FilterInputStream を作成します。 |
| メソッドの概要 | |
|---|---|
int |
available()
この入力ストリームのメソッドの次の呼び出し側によって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。 |
void |
close()
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。 |
void |
mark(int readlimit)
この入力ストリームの現在位置にマークを設定します。 |
boolean |
markSupported()
入力ストリームが mark と reset メソッドをサポートしているかどうかを判定します。 |
int |
read()
この入力ストリームからデータの次のバイトを読み込みます。 |
int |
read(byte[] b)
最大 byte.length バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。 |
int |
read(byte[] b,
int off,
int len)
最大 len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。 |
void |
reset()
このストリームの位置を、入力ストリームで最後に mark メソッドが呼び出されたときのマーク位置に再設定します。 |
long |
skip(long n)
この入力ストリームから n バイト分をスキップおよび破棄します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
protected volatile InputStream in
| コンストラクタの詳細 |
|---|
protected FilterInputStream(InputStream in)
in を this.in フィールドに割り当てることによって、FilterInputStream を作成します。
in - 基本となる入力ストリーム。このインスタンスが基本となるストリームなしで生成される場合は null| メソッドの詳細 |
|---|
public int read()
throws IOException
0 〜 255 の範囲の int として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1 が返されます。入力データが読み込めるようになるか、ファイルの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。
このメソッドは単純に in.read() を実行し、その結果を返します。
InputStream 内の read-1
IOException - 入出力エラーが発生した場合in
public int read(byte[] b)
throws IOException
byte.length バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、入力の一部が利用できるようになるまでブロックします。
このメソッドは単純に read(b, 0, b.length) の呼び出しを実行し、その結果を返します。代わりに in.read(b) が実行されないようにしてください。FilterInputStream の特定のサブクラスは、実際に使用されている実装方法に依存します。
InputStream 内の readb - データの読み込み先のバッファ
-1
IOException - 入出力エラーが発生した場合read(byte[], int, int)
public int read(byte[] b,
int off,
int len)
throws IOException
len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。len が 0 でない場合、このメソッドは入力の一部が利用できるようになるまでブロックします。そうでない場合、バイトは読み込まれず、0 が返されます。
このメソッドは単純に in.read(b, off, len) を実行し、その結果を返します。
InputStream 内の readb - データの読み込み先のバッファoff - 転送先の配列 b 内での開始オフセットlen - 読み込まれる最大バイト数
-1
NullPointerException - b が null の場合
IndexOutOfBoundsException - off が負の場合、len が負の場合、または len が b.length - off よりも大きい場合
IOException - 入出力エラーが発生した場合in
public long skip(long n)
throws IOException
n バイト分をスキップおよび破棄します。さまざまな理由から、skip メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0 の場合もあります。このスキップは複数の条件に起因する可能性がありますが、考えられる唯一の場合は、n バイトがスキップされる前にファイルの終わりに達した場合です。スキップされた実際のバイト数が返されます。n が負の場合、バイトはスキップされません。
このクラスの skip メソッドはバイト配列を作成し、n バイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。サブクラスでこのメソッドを実装する場合は、より効率的に実装してください。たとえば、実装はシークの機能に依存する可能性があります。
このメソッドは単純に in.skip(n) を実行します。
InputStream 内の skipn - スキップするバイト数
IOException - ストリームがシークをサポートしない場合、またはその他の入出力エラーが発生した場合
public int available()
throws IOException
このメソッドが返すのは in.available() の結果です。
InputStream 内の availableIOException - 入出力エラーが発生した場合
public void close()
throws IOException
in.close() を実行します。
Closeable 内の closeInputStream 内の closeIOException - 入出力エラーが発生した場合inpublic void mark(int readlimit)
reset メソッドを呼び出すと、最後にマークが設定された位置にストリームを再設定するため、次回の読み込み操作では同じバイトから読み込むことになります。
引数 readlimit はこの入力ストリームに対して、マーク位置が無効になる前にこの引数が指定するバイト数を読み込むように指示します。
このメソッドは単純に in.mark(readlimit) を実行します。
InputStream 内の markreadlimit - マーク位置が無効になる前に読み込み可能なバイトの最大リミットin,
reset()
public void reset()
throws IOException
mark メソッドが呼び出されたときのマーク位置に再設定します。
このメソッドは単純に in.reset() を実行します。
ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。ストリームがこのようなタイプではない場合は、パーサーは失敗した時点で例外を発生させます。readlimit バイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。
InputStream 内の resetIOException - ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合in,
mark(int)public boolean markSupported()
mark と reset メソッドをサポートしているかどうかを判定します。このメソッドは単純に in.markSupported() を実行します。
- オーバーライド:
- クラス
InputStream 内の markSupported
- 戻り値:
- ストリームが
mark と reset メソッドをサポートするタイプの場合は true、そうでない場合は false - 関連項目:
in,
InputStream.mark(int),
InputStream.reset()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。