Java プラットフォーム 1.2

java.io
クラス BufferedReader

java.lang.Object
  |
  +--java.io.Reader
        |
        +--java.io.BufferedReader
直接の既知のサブクラス:
LineNumberReader

public class BufferedReader
extends Reader

文字、配列、行をバッファリングすることによって、文字型入力ストリームからテキストを効率良く読み込みます。

バッファのサイズは、デフォルト値のままにすることも、特定の値を指定することもできます。デフォルト値は、通常の使い方では十分な大きさです。

一般的に、Reader に対して読み込み要求が出されると、それに対応する基礎の文字型またはバイトストリームへの読み込み要求が発行されます。このため、FileReader や InputStreamReader のように read() オペレーションの効率の良くない Reader では、その周りを BufferedReader でラップすることをお勧めします。たとえば、次の例は指定されたファイルからの入力をバッファします。

 BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
 
バッファリングせずに read()、readLine() を使うと、呼び出しごとにファイルからバイトを読み込み、文字型に変換し、そのたびに復帰するので、非常に効率が悪くなります。

テキスト入力に対して DataInputStreams を使うプログラムは、各 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()
          テキストを 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
 

コンストラクタの詳細

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
単一の文字を読み込みます。
例外:
IOException - 入出力エラーが発生した場合
オーバーライド:
クラス Reader 内の read

read

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

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

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

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

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

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

readLine

public String readLine()
                throws IOException
テキストを 1 行読み込みます。1 つの行は、改行 ('¥n')、復帰 ('¥r')、または復帰とその直後に続く改行のどれかにより終了したと見なされます。
戻り値:
行に含まれる文字列。ただし、行の終端コード、ストリームの終わりに達した場合の null は含まれない
例外:
IOException - 入出力エラーが発生した場合

skip

public long skip(long n)
          throws IOException
文字をスキップします。
パラメータ:
n - スキップする文字の数
戻り値:
実際にスキップされた文字の数
例外:
IOException - 入出力エラーが発生した場合
オーバーライド:
クラス Reader 内の skip

ready

public boolean ready()
              throws IOException
ストリームが読み込み可能かどうかを返します。バッファリングされた文字型ストリームは、空白ではないか、または基礎の文字型ストリームが読み込み可能であるときに読み込み可能です。
例外:
IOException - 入出力エラーが発生した場合
オーバーライド:
クラス Reader 内の ready

markSupported

public boolean markSupported()
ストリームが、マークを設定する mark() オペレーションをサポートしているかどうかを返します。
オーバーライド:
クラス Reader 内の markSupported

mark

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

reset

public void reset()
           throws IOException
最後のマーク位置にストリームをリセットします。
例外:
IOException - ストリームにマークを設定できなかった場合、またはマークが無効になった場合
オーバーライド:
クラス Reader 内の reset

close

public void close()
           throws IOException
ストリームを閉じます。
例外:
IOException - 入出力エラーが発生した場合
オーバーライド:
クラス Reader 内の close

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.