JavaTM 2 Platform
Std. Ed. v1.3

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() を使うと、呼び出しごとにファイルからバイトを読み込み、文字型に変換し、そのたびに復帰するので、非常に効率が悪くなります。

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

markSupported

public boolean markSupported()
このストリームが、実行する mark() 操作をサポートするかどうかを通知します。
オーバーライド:
クラス Reader 内の markSupported
クラス java.io.Reader からコピーされたタグ:
戻り値:
このストリームが 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 内の close
例外:
IOException - 入出力エラーが発生した場合

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.