|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.io.Reader | +--java.io.BufferedReader
文字、配列、行をバッファリングすることによって、文字型入力ストリームからテキストを効率良く読み込みます。
バッファのサイズは、デフォルト値のままにすることも、特定の値を指定することもできます。デフォルト値は、通常の使い方では十分な大きさです。
一般的に、Reader に対して読み込み要求が出されると、それに対応する基礎の文字型またはバイトストリームへの読み込み要求が発行されます。このため、FileReader や InputStreamReader のように read() オペレーションの効率の良くない Reader では、その周りを BufferedReader でラップすることをお勧めします。たとえば、次の例は指定されたファイルからの入力をバッファします。
BufferedReader in = new BufferedReader(new FileReader("foo.in"));バッファリングせずに read()、readLine() を使うと、呼び出しごとにファイルからバイトを読み込み、文字型に変換し、そのたびに復帰するので、非常に効率が悪くなります。
テキスト入力に対して DataInputStreams を使うプログラムは、各 DataInputStream を適切な BufferedReader に入れ替えることによって地域対応することができます。
FileReader
,
InputStreamReader
クラス java.io.Reader から継承したフィールド |
lock |
コンストラクタの概要 | |
BufferedReader(Reader in)
デフォルトサイズのバッファでバッファリングされた、文字型入力ストリームを作成します。 |
|
BufferedReader(Reader in,
int sz)
指定されたサイズのバッファでバッファリングされた、文字型入力ストリームを作成します。 |
メソッドの概要 | |
void |
close()
ストリームを閉じます。 |
void |
mark(int readAheadLimit)
ストリームの現在位置にマークを設定します。 |
boolean |
markSupported()
ストリームが、マークを設定する mark() オペレーションをサポートしているかどうかを返します。 |
int |
read()
単一の文字を読み込みます。 |
int |
read(char[] cbuf,
int off,
int len)
配列の一部に(複数の)文字を読み込みます。 |
String |
readLine()
テキストを 1 行読み込みます。 |
boolean |
ready()
ストリームが読み込み可能かどうかを返します。 |
void |
reset()
最後のマーク位置にストリームをリセットします。 |
long |
skip(long n)
文字をスキップします。 |
クラス java.io.Reader から継承したメソッド |
read |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
コンストラクタの詳細 |
public BufferedReader(Reader in, int sz)
in
- Readersz
- 入力バッファのサイズpublic BufferedReader(Reader in)
in
- Readerメソッドの詳細 |
public int read() throws IOException
public int read(char[] cbuf, int off, int len) throws IOException
このメソッドは、
クラスの対応する Reader
read
メソッドの汎用規約を実装します。より便利なように、このメソッドは基礎ストリームの read
メソッドを繰り返し呼び出して、できるだけ多くの文字数を読み込もうとします。この read
の繰り返しは、以下の条件の 1 つが true になるまで行われます。
read
メソッドが、ファイルの終わりを示す -1
を返した
ready
メソッドが、それ以上の入力要求がブロックされることを示す false
を返した
read
がファイルの終わりを示す -1
を返すと、このメソッドは -1
を返します。そうでない場合、このメソッドは実際に読み込まれた文字数を返します。
このクラスのサブクラスは、同じ方法でできるだけ多くの文字数を読み込むことが推奨されます。ただし、これは必須ではありません。
通常このメソッドは、このストリームの文字バッファから文字を取得し、必要に応じて基礎のストリームからそのバッファを埋めます。しかし、バッファが空で、マークが無効で、要求された長さが少なくともバッファと同じ大きさの場合、このメソッドは基礎のストリームから与えられた配列に直接文字を読み込みます。こうして、余分な BufferedReader
は、データを不必要にはコピーしません。
cbuf
- 書き込み先バッファoff
- 文字の格納開始オフセットlen
- 読み込む最大文字数public String readLine() throws IOException
public long skip(long n) throws IOException
n
- スキップする文字の数public boolean ready() throws IOException
public boolean markSupported()
public void mark(int readAheadLimit) throws IOException
readAheadLimit
- マークを保持しながら読み込むことができる文字数の上限。この数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある。入力バッファのサイズより大きい限界値を指定すると、そのサイズが限界より小さくない新しいバッファが割り当てられる。そのため、大きな値は注意して使用する必要があるpublic void reset() throws IOException
public void close() throws IOException
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |