JavaTM Platform
Standard Ed. 6

java.io
クラス BufferedReader

java.lang.Object
  上位を拡張 java.io.Reader
      上位を拡張 java.io.BufferedReader
すべての実装されたインタフェース:
Closeable, 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 に入れ替えることによってローカライズすることができます。

導入されたバージョン:
JDK1.1
関連項目:
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
 

コンストラクタの詳細

BufferedReader

public BufferedReader(Reader in,
                      int sz)
指定されたサイズのバッファーでバッファリングされた、文字型入力ストリームを作成します。

パラメータ:
in - Reader
sz - 入力バッファーのサイズ
例外:
IllegalArgumentException - sz が 0 以下の場合

BufferedReader

public BufferedReader(Reader in)
デフォルトサイズのバッファーでバッファリングされた、文字型入力ストリームを作成します。

パラメータ:
in - Reader
メソッドの詳細

read

public int read()
         throws IOException
単一の文字を読み込みます。

オーバーライド:
クラス Reader 内の read
戻り値:
0 〜 65535 (0x00 〜 0xffff) の範囲の整数としての、読み込まれた文字。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合

read

public int read(char[] cbuf,
                int off,
                int len)
         throws IOException
配列の一部に文字を読み込みます。

このメソッドは、Reader クラスの対応する read メソッドの汎用規約を実装します。より便利なように、このメソッドは基本となるストリームの read メソッドを繰り返し呼び出して、できるだけ多くの文字数を読み込もうとします。この read の繰り返しは、以下の条件の 1 つが true になるまで行われます。

基本となるストリームの最初の read がファイルの終わりを示す -1 を返すと、このメソッドは -1 を返します。そうでない場合、このメソッドは実際に読み込まれた文字数を返します。

このクラスのサブクラスは、同じ方法でできるだけ多くの文字数を読み込むことが推奨されます。ただし、これは必須ではありません。

通常このメソッドは、このストリームの文字バッファーから文字を取得し、必要に応じて基本となるストリームからそのバッファーを埋めます。しかし、バッファーが空で、マークが無効で、要求された長さがバッファーと同じ大きさ以上の場合、このメソッドは基本となるストリームから、指定された配列に直接文字を読み込みます。このため、余分な BufferedReader が、データを不必要にコピーすることがありません。

定義:
クラス Reader 内の read
パラメータ:
cbuf - 転送先バッファー
off - 文字の格納開始オフセット
len - 読み込む文字の最大数
戻り値:
読み込まれた文字数。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合

readLine

public String readLine()
                throws IOException
テキスト行を読み込みます。1 行の終端は、改行 ('\n') か、復帰 ('\r')、または復行とそれに続く改行のいずれかで認識されます。

戻り値:
行の内容を含む文字列、ただし行の終端文字は含めない。ストリームの終わりに達している場合は null
例外:
IOException - 入出力エラーが発生した場合

skip

public long skip(long n)
          throws IOException
文字をスキップします。

オーバーライド:
クラス Reader 内の skip
パラメータ:
n - スキップする文字数
戻り値:
実際にスキップした文字数
例外:
IllegalArgumentException - n が負の値の場合
IOException - 入出力エラーが発生した場合

ready

public boolean ready()
              throws IOException
ストリームが読み込み可能かどうかを返します。バッファリングされた文字型ストリームは、空白ではないか、または基本となる文字型ストリームが読み込み可能であるときに読み込み可能です。

オーバーライド:
クラス Reader 内の ready
戻り値:
次の read() が入力をブロックしないことが確実な場合は true、そうでない場合は false。false が返されても、次の読み込みが確実にブロックするというわけでない
例外:
IOException - 入出力エラーが発生した場合

markSupported

public boolean markSupported()
このストリームが、実行する mark() 操作をサポートするかどうかを通知します。

オーバーライド:
クラス Reader 内の markSupported
戻り値:
このストリームが mark オペレーションをサポートする場合に限り true

mark

public void mark(int readAheadLimit)
          throws IOException
ストリームの現在位置にマークを設定します。以降 reset() を呼び出すと、ストリームの位置がこの位置に変更されます。

オーバーライド:
クラス Reader 内の mark
パラメータ:
readAheadLimit - マークを保持しながら読み込むことができる文字数の上限。この上限値の前後の数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある。入力バッファーのサイズより大きい限界値を指定すると、そのサイズが限界より小さくない新しいバッファーが割り当てられる。そのため、大きな値は注意して使用する必要がある
例外:
IllegalArgumentException - readAheadLimit が負の値の場合
IOException - 入出力エラーが発生した場合

reset

public void reset()
           throws IOException
ストリームを、もっとも新しいマーク位置にリセットします。

オーバーライド:
クラス Reader 内の reset
例外:
IOException - ストリームにマークを設定できなかった場合、またはマークが無効になった場合

close

public void close()
           throws IOException
クラス Reader の記述:
ストリームを閉じて、それに関連するすべてのシステムリソースを解放します。ストリームが閉じられたあとに read()、ready()、mark()、reset()、または skip() を呼び出すと、IOException がスローされます。すでに閉じられているストリームを閉じても、何の影響もありません。

定義:
インタフェース Closeable 内の close
定義:
クラス Reader 内の close
例外:
IOException - 入出力エラーが発生した場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。