|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.io.Reader java.io.BufferedReader
public class BufferedReader
文字、配列、行をバッファリングすることによって、文字型入力ストリームからテキストを効率良く読み込みます。
バッファーのサイズは、デフォルト値のままにすることも、特定の値を指定することもできます。デフォルト値は、通常の使い方では十分な大きさです。
一般的に、Reader に対して読み込み要求が出されると、それに対応する基本となる文字型ストリームまたはバイトストリームへの読み込み要求が発行されます。このため、FileReader や InputStreamReader のように read() オペレーションの効率の良くない Reader では、その周りを BufferedReader でラップすることをお勧めします。たとえば、次の例は指定されたファイルからの入力をバッファーします。
BufferedReader in = new BufferedReader(new FileReader("foo.in"));バッファリングせずに read()、readLine() を使うと、呼び出しごとにファイルからバイトを読み込み、文字型に変換し、そのたびに復帰するので、非常に効率が悪くなります。
テキスト入力に対して DataInputStream を使うプログラムは、各 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()
テキスト行を読み込みます。 |
boolean |
ready()
ストリームが読み込み可能かどうかを返します。 |
void |
reset()
ストリームを、もっとも新しいマーク位置にリセットします。 |
long |
skip(long n)
文字をスキップします。 |
クラス java.io.Reader から継承されたメソッド |
---|
read, read |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public BufferedReader(Reader in, int sz)
in
- Readersz
- 入力バッファーのサイズ
IllegalArgumentException
- sz が 0 以下の場合public BufferedReader(Reader in)
in
- Readerメソッドの詳細 |
---|
public int read() throws IOException
Reader
内の read
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
が、データを不必要にコピーすることがありません。
Reader
内の read
cbuf
- 転送先バッファーoff
- 文字の格納開始オフセットlen
- 読み込む文字の最大数
IOException
- 入出力エラーが発生した場合public String readLine() throws IOException
IOException
- 入出力エラーが発生した場合public long skip(long n) throws IOException
Reader
内の skip
n
- スキップする文字数
IllegalArgumentException
- n
が負の値の場合
IOException
- 入出力エラーが発生した場合public boolean ready() throws IOException
Reader
内の ready
IOException
- 入出力エラーが発生した場合public boolean markSupported()
Reader
内の markSupported
public void mark(int readAheadLimit) throws IOException
Reader
内の mark
readAheadLimit
- マークを保持しながら読み込むことができる文字数の上限。この上限値の前後の数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある。入力バッファーのサイズより大きい限界値を指定すると、そのサイズが限界より小さくない新しいバッファーが割り当てられる。そのため、大きな値は注意して使用する必要がある
IllegalArgumentException
- readAheadLimit が負の値の場合
IOException
- 入出力エラーが発生した場合public void reset() throws IOException
Reader
内の reset
IOException
- ストリームにマークを設定できなかった場合、またはマークが無効になった場合public void close() throws IOException
Reader
の記述:
Closeable
内の close
Reader
内の close
IOException
- 入出力エラーが発生した場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。