- すべての実装されたインタフェース:
- Closeable,- AutoCloseable,- Readable
- 直系の既知のサブクラス:
- LineNumberReader
public class BufferedReader extends Reader
バッファのサイズは、デフォルト値のままにすることも、特定の値を指定することもできます。 デフォルト値は、通常の使い方では十分な大きさです。
一般的に、Readerに対して読込み要求が出されると、それに対応するベースとなる文字型ストリームまたはバイト・ストリームへの読込み要求が発行されます。 このため、FileReaderやInputStreamReaderのようにread()オペレーションの効率の良くないReaderでは、その周りをBufferedReaderでラップすることをお薦めします。 次に例を示します。
 BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
 
 この例は指定されたファイルからの入力をバッファします。 バッファリングせずにread()、readLine()を使うと、呼び出しごとにファイルからバイトを読み込み、文字型に変換し、そのたびに復帰するので、非常に効率が悪くなります。 
 テキスト入力に対してDataInputStreamを使うプログラムは、各DataInputStreamを適切なBufferedReaderに入れ替えることによって地域対応することができます。
- 導入されたバージョン:
- 1.1
- 関連項目:
- FileReader、- InputStreamReader、- Files.newBufferedReader(java.nio.file.Path, java.nio.charset.Charset)
- 
フィールドのサマリー
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 BufferedReader(Reader in)デフォルト・サイズのバッファでバッファリングされた、文字型入力ストリームを作成します。BufferedReader(Reader in, int sz)指定されたサイズのバッファでバッファリングされた、文字型入力ストリームを作成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 Stream<String>lines()Streamを返します。要素はBufferedReaderから読み込まれる行です。voidmark(int readAheadLimit)ストリームの現在位置にマークを設定します。booleanmarkSupported()このストリームが、実行するmark()オペレーションをサポートするかどうかを通知します。intread()単一の文字を読み込みます。intread(char[] cbuf, int off, int len)配列の一部に文字を読み込みます。StringreadLine()テキスト行を読み込みます。booleanready()このストリームが読込み可能かどうかを判定します。voidreset()ストリームを、もっとも新しいマーク位置にリセットします。longskip(long n)文字をスキップします。クラス java.io.Readerで宣言されたメソッドclose, nullReader, read, read, transferTo
- 
コンストラクタの詳細- 
BufferedReaderpublic BufferedReader(Reader in, int sz)指定されたサイズのバッファでバッファリングされた、文字型入力ストリームを作成します。- パラメータ:
- in- Reader
- sz- 入力バッファのサイズ
- 例外:
- IllegalArgumentException-- sz <= 0の場合
 
- 
BufferedReaderpublic BufferedReader(Reader in)デフォルト・サイズのバッファでバッファリングされた、文字型入力ストリームを作成します。- パラメータ:
- in- Reader
 
 
- 
- 
メソッドの詳細- 
readpublic int read() throws IOException単一の文字を読み込みます。- オーバーライド:
- read、クラス:- Reader
- 戻り値:
- 0 - 65535 (0x00-0xffff)の範囲の整数としての、読み込まれた文字。ストリームの終わりに達した場合は -1
- 例外:
- IOException- 入出力エラーが発生した場合
 
- 
readpublic int read(char[] cbuf, int off, int len) throws IOException配列の一部に文字を読み込みます。このメソッドは、 Readerreadreadメソッドを繰返し呼び出して、できるだけ多くの文字数を読み込もうとします。 このreadの反復は、次の条件の1つがtrueになるまで行われます。- 指定された文字数が読み込まれた。
-  ベースとなるストリームのreadメソッドが、ファイルの終わりを示す-1を返した。
-  ベースとなるストリームのreadyメソッドが、それ以上の入力要求がブロックされることを示すfalseを返した。
 readがファイルの終わりを示す-1を返すと、このメソッドは-1を返します。 そうでない場合、このメソッドは実際に読み込まれた文字数を返します。このクラスのサブクラスは、同じ方法でできるだけ多くの文字数を読み込むことが推奨されます。ただし、これは必須ではありません。 通常このメソッドは、このストリームの文字バッファから文字を取得し、必要に応じてベースとなるストリームからそのバッファを埋めます。 しかし、バッファが空で、マークが無効で、要求された長さがバッファと同じ大きさ以上の場合、このメソッドはベースとなるストリームから、指定された配列に直接文字を読み込みます。 このため、余分な BufferedReaderがデータを不必要にコピーすることがありません。- 定義:
- read、クラス:- Reader
- パラメータ:
- cbuf- 転送先バッファ
- off- 文字の格納開始オフセット
- len- 読み込む文字の最大数
- 戻り値:
- 読み込まれた文字数。ストリームの終わりに達した場合は -1
- 例外:
- IOException- 入出力エラーが発生した場合
- IndexOutOfBoundsException-- offが負の場合、または- lenが負の場合、または- lenが- cbuf.length - offより大きい場合
 
- 
readLinepublic String readLine() throws IOExceptionテキスト行を読み込みます。 ラインは、ライン・フィード('')、キャリッジ・リターン('\r')、キャリッジ・リターンの直後に改行、またはファイルの終わり(EOF)に到達することによって終了されるとみなされます。- 戻り値:
- 行の終了文字が含まれていない、行の内容を含むString。文字を読み取らずにストリームの終わりに達した場合はnull
- 例外:
- IOException- 入出力エラーが発生した場合
- 関連項目:
- Files.readAllLines(java.nio.file.Path, java.nio.charset.Charset)
 
- 
skippublic long skip(long n) throws IOException文字をスキップします。- オーバーライド:
- skip、クラス:- Reader
- パラメータ:
- n- スキップする文字数
- 戻り値:
- 実際にスキップした文字数
- 例外:
- IllegalArgumentException-- nが負の値の場合。
- IOException- 入出力エラーが発生した場合
 
- 
readypublic boolean ready() throws IOExceptionこのストリームが読込み可能かどうかを判定します。 バッファリングされた文字型ストリームは、空白ではないか、またはベースとなる文字型ストリームが読込み可能であるときに読込み可能です。- オーバーライド:
- ready、クラス:- Reader
- 戻り値:
- 次のread()が入力をブロックしないことが確実な場合はtrue、そうでない場合はfalse。 falseが返されても、次の読込みが確実にブロックするというわけでない。
- 例外:
- IOException- 入出力エラーが発生した場合
 
- 
markSupportedpublic boolean markSupported()このストリームが、実行するmark()オペレーションをサポートするかどうかを通知します。- オーバーライド:
- markSupported、クラス:- Reader
- 戻り値:
- このストリームがmarkオペレーションをサポートする場合に限りtrue。
 
- 
markpublic void mark(int readAheadLimit) throws IOExceptionストリームの現在位置にマークを設定します。 以降のreset()の呼出しでは、この位置へのストリームの再配置が試みられます。- オーバーライド:
- mark、クラス:- Reader
- パラメータ:
- readAheadLimit- マークを保持しながら読み込むことができる文字数の上限。 この上限値の前後の数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある。 入力バッファのサイズより大きい限界値を指定すると、そのサイズが限界より小さくない新しいバッファが割り当てられる。 そのため、大きな値は注意して使用する必要がある。
- 例外:
- IllegalArgumentException-- readAheadLimit < 0の場合
- IOException- 入出力エラーが発生した場合
 
- 
resetpublic void reset() throws IOExceptionストリームを、もっとも新しいマーク位置にリセットします。- オーバーライド:
- reset、クラス:- Reader
- 例外:
- IOException- ストリームにマークを設定できなかった場合、またはマークが無効になった場合
 
- 
linesStreamを返します。要素はBufferedReaderから読み込まれる行です。Streamは遅延移入されます。つまり、ストリーム終端操作時には読込みのみが発生します。ストリーム終端操作の実行中にリーダーを操作しないでください。 そうしない場合、ストリーム終端操作の結果は保証されません。 ストリーム終端操作の実行後は、リーダーが特定の位置にあり、そこから次の文字または行を読み込む保証はありません。 基礎となる BufferedReaderのアクセス時にスローされたIOExceptionは、UncheckedIOExceptionにラップされます(読込みを発生させたStreamメソッドからはこれがスローされます)。 このメソッドは、閉じたBufferedReaderで呼び出された場合にStreamを返します。 BufferedReaderが閉じられた後に、そこからの読込みを必要とするストリームに対して操作すると、UncheckedIOExceptionがスローされます。- 戻り値:
- このBufferedReaderで記述されたテキスト行を提供するStream<String>
- 導入されたバージョン:
- 1.8
 
 
-