|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object
|
+--java.io.Reader
|
+--java.io.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()
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 |
| コンストラクタの詳細 |
public BufferedReader(Reader in,
int sz)
in - Readersz - 入力バッファのサイズIllegalArgumentException - sz が 0 以下の場合public BufferedReader(Reader in)
in - Reader| メソッドの詳細 |
public int read()
throws IOException
Reader 内の readIOException - 入出力エラーが発生した場合
public int read(char[] cbuf,
int off,
int len)
throws IOException
このメソッドは、 クラスの対応する Reader メソッドの汎用規約を実装します。より便利なように、このメソッドは基本となるストリームの readread メソッドを繰り返し呼び出して、できるだけ多くの文字数を読み込もうとします。この read の繰り返しは、以下の条件の 1 つが true になるまで行われます。
read メソッドが、ファイルの終わりを示す -1 を返した
ready メソッドが、それ以上の入力要求がブロックされることを示す false を返した
read がファイルの終わりを示す -1 を返すと、このメソッドは -1 を返します。そうでない場合、このメソッドは実際に読み込まれた文字数を返します。
このクラスのサブクラスは、同じ方法でできるだけ多くの文字数を読み込むことが推奨されます。ただし、これは必須ではありません。
通常このメソッドは、このストリームの文字バッファから文字を取得し、必要に応じて基本となるストリームからそのバッファを埋めます。しかし、バッファが空で、マークが無効で、要求された長さがバッファと同じ大きさ以上の場合、このメソッドは基本となるストリームから、指定された配列に直接文字を読み込みます。このため、余分な BufferedReader が、データを不必要にコピーすることがありません。
Reader 内の readcbuf - 転送先バッファoff - 文字の格納開始オフセットlen - 読み込む文字の最大数IOException - 入出力エラーが発生した場合
public String readLine()
throws IOException
IOException - 入出力エラーが発生した場合
public long skip(long n)
throws IOException
Reader 内の skipn - スキップする文字数IllegalArgumentException - n が負の値の場合IOException - 入出力エラーが発生した場合
public boolean ready()
throws IOException
Reader 内の readyIOException - 入出力エラーが発生した場合public boolean markSupported()
Reader 内の markSupportedjava.io.Reader からコピーされたタグ:
public void mark(int readAheadLimit)
throws IOException
Reader 内の markreadAheadLimit - マークを保持しながら読み込むことができる文字数の上限。この数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある。入力バッファのサイズより大きい限界値を指定すると、そのサイズが限界より小さくない新しいバッファが割り当てられる。そのため、大きな値は注意して使用する必要があるIllegalArgumentException - readAheadLimit が負の値の場合IOException - 入出力エラーが発生した場合
public void reset()
throws IOException
Reader 内の resetIOException - ストリームにマークを設定できなかった場合、またはマークが無効になった場合
public void close()
throws IOException
Reader 内の closeIOException - 入出力エラーが発生した場合
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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.