|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.BufferedInputStream
public class BufferedInputStream
ほかの入力ストリームに機能、特に入力をバッファーに格納する機能と mark
メソッドと reset
メソッドをサポートする機能を追加します。BufferedInputStream
が作成されると、内部バッファー配列が作成されます。ストリームのバイトが読み込まれるかスキップされると、格納されている入力ストリームから必要に応じて一度に多数のバイトが内部バッファーに補充されます。mark
オペレーションは入力ストリームの特定位置を記憶します。 reset
オペレーションは、格納されている入力ストリームから新しいバイトが取得される前に、最後に実行された mark
オペレーション以降に読み込まれたすべてのバイトを再読み込みします。
フィールドの概要 | |
---|---|
protected byte[] |
buf
データを格納する内部バッファー配列です。 |
protected int |
count
バッファー中の最後の有効バイトインデックスよりも 1 つ大きな数値を持つインデックスです。 |
protected int |
marklimit
mark メソッドが呼び出され、かつ、後続の reset メソッドが失敗する前の状態で先読み可能な最大数です。 |
protected int |
markpos
最後に mark メソッドが呼び出されたときの pos フィールドの値です。 |
protected int |
pos
バッファーの現在位置です。 |
クラス java.io.FilterInputStream から継承されたフィールド |
---|
in |
コンストラクタの概要 | |
---|---|
BufferedInputStream(InputStream in)
BufferedInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。 |
|
BufferedInputStream(InputStream in,
int size)
指定されたバッファーサイズを持つ BufferedInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。 |
メソッドの概要 | |
---|---|
int |
available()
この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。 |
void |
close()
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。 |
void |
mark(int readlimit)
InputStream の mark メソッドの汎用規約を参照してください。 |
boolean |
markSupported()
入力ストリームが mark と reset メソッドをサポートしているかどうかを判定します。 |
int |
read()
InputStream の read メソッドの汎用規約を参照してください。 |
int |
read(byte[] b,
int off,
int len)
このバイト入力ストリームからバイトを読み取って、指定されたバイト配列に指定のオフセットから挿入します。 |
void |
reset()
InputStream の reset メソッドの汎用規約を参照してください。 |
long |
skip(long n)
InputStream の skip メソッドの汎用規約を参照してください。 |
クラス java.io.FilterInputStream から継承されたメソッド |
---|
read |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
protected volatile byte[] buf
protected int count
0
〜 buf.length
です。 要素 buf[0]
〜 buf[count-1]
には、基本となる入力ストリームから取得され、バッファーに格納されている入力データが入ります。
protected int pos
buf
配列の、次に読み込まれる文字データのインデックスです。
この値の範囲は、常に 0
〜 count
です。この値が count
より小さい場合、入力される次のバイトは buf[pos]
です。 count
に等しい場合、次の read
オペレーションまたは skip
オペレーションは格納されている入力ストリームからこれ以降のバイトを読み込む必要があります。
buf
protected int markpos
mark
メソッドが呼び出されたときの pos
フィールドの値です。
この値の範囲は、常に -1
〜 pos
です。入力ストリームにマーク位置がない場合、このフィールドは -1
です。入力ストリームにマーク位置がある場合、reset
オペレーションの実行後に入力される最初のバイトは buf[markpos]
です。markpos
が -1
ではない場合、buf[markpos]
〜 buf[pos-1]
の位置にあるすべてのバイトはバッファー配列に残っていなければいけません (ただし、count
、pos
、markpos
の値に適切な調整を施せば、バッファー配列内の別の位置に移動できる)。 pos
と markpos
の差が marklimit
を超えないかぎり、これらのバイトは破棄されません。
mark(int)
,
pos
protected int marklimit
mark
メソッドが呼び出され、かつ、後続の reset
メソッドが失敗する前の状態で先読み可能な最大数です。pos
と markpos
の差が marklimit
を超えると、markpos
が -1
に設定され、マークは破棄されます。
mark(int)
,
reset()
コンストラクタの詳細 |
---|
public BufferedInputStream(InputStream in)
BufferedInputStream
を作成し、その引数である入力ストリーム in
をあとで使用できるように保存します。内部バッファー配列が作成され、buf
に格納されます。
in
- 基本となる入力ストリームpublic BufferedInputStream(InputStream in, int size)
BufferedInputStream
を作成し、その引数である入力ストリーム in
をあとで使用できるように保存します。長さ size
の内部バッファー配列が作成され、buf
に格納されます。
in
- 基本となる入力ストリームsize
- バッファーサイズ
IllegalArgumentException
- size が 0 以下の場合メソッドの詳細 |
---|
public int read() throws IOException
InputStream
の read
メソッドの汎用規約を参照してください。
FilterInputStream
内の read
-1
IOException
- この入力ストリームが close()
メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合FilterInputStream.in
public int read(byte[] b, int off, int len) throws IOException
このメソッドは、
クラスの対応する InputStream
メソッドの汎用規約を実装します。より便利なように、このメソッドは基本となるストリームの read
read
メソッドを繰り返し呼び出して、できるだけ多くのバイト数を読み込もうとします。この read
の繰り返しは、次の条件の 1 つが true になるまで行われます。
read
メソッドが、ファイルの終わりを示す -1
を返した
available
メソッドが、それ以上の入力要求がブロックされることを示すゼロを返した
read
がファイルの終わりを示す -1
を返すと、このメソッドは -1
を返します。そうでない場合、このメソッドは実際に読み込まれたバイト数を返します。
このクラスのサブクラスは、同じ方法でできるだけ多くのバイト数を読み込むことが推奨されます。ただし、これは必須ではありません。
FilterInputStream
内の read
b
- 転送先バッファーoff
- バイトの格納開始オフセットlen
- 読み込むバイトの最大数
-1
IOException
- この入力ストリームが close()
メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合FilterInputStream.in
public long skip(long n) throws IOException
InputStream
の skip
メソッドの汎用規約を参照してください。
FilterInputStream
内の skip
n
- スキップするバイト数
IOException
- ストリームがシークをサポートしない場合、この入力ストリームが close()
メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合public int available() throws IOException
このメソッドは、バッファーの中に残っている読み込み可能なバイトの総数 (count - pos
) を返し、in
.available() 呼び出しの結果を返します。
FilterInputStream
内の available
IOException
- この入力ストリームが close()
メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合public void mark(int readlimit)
InputStream
の mark
メソッドの汎用規約を参照してください。
FilterInputStream
内の mark
readlimit
- マーク位置が無効になる前に読み込み可能なバイトの最大リミットreset()
public void reset() throws IOException
InputStream
の reset
メソッドの汎用規約を参照してください。
markpos
が -1
である (マークが設定されていないか、マークが無効にされている) 場合、IOException
がスローされます。そうでない場合、pos
は markpos
に一致するように設定されます。
FilterInputStream
内の reset
IOException
- このストリームにマークが付いていない場合、マークが無効な場合、ストリームが close()
メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合mark(int)
public boolean markSupported()
mark
と reset
メソッドをサポートしているかどうかを判定します。BufferedInputStream
の markSupported
メソッドは true
を返します。
FilterInputStream
内の markSupported
mark
と reset
メソッドをサポートしているかどうかを示す boolean
InputStream.mark(int)
,
InputStream.reset()
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 も参照してください。