全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
クラス java.io.BufferedReader
java.lang.Object
|
+----java.io.Reader
|
+----java.io.BufferedReader
- public class BufferedReader
- extends Reader
読み込みの効率が良くなるように文字、配列、行をバッファリングしながら、文字型入力ストリームからテキストを読み込みます。
バッファのサイズを指定できますし、デフォルトのまま使うこともできます。デフォルト値は通常の使い方のためには十分な大きさを持っています。
一般的に、Reader に対して読み込み要求が出されると、それに対応する下層の文字型またはバイトストリームへの読み込み要求が出されます。このため、FileReadersやInputStreamReadersのように read()オペレーションの効率の良くない Readerではその周りを BufferedReaderでラップすることを推奨します。例えば、
BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
は指定されたファイルからの入力をバッファします。バッファリングせずに read(), readLine()を使うと、呼び出しごとにファイルからバイトを読み込み、文字型へ変換し、その度に戻りますから非常に効率が悪くなります。
テキスト入力に対して DataInputStreams を使うプログラムは、各 DataInputStream を適切な BufferedReader に入れ替えることによってローカライズすることができます。
- 参照:
- FileReader, InputStreamReader
-
BufferedReader(Reader)
- デフォルトサイズのバッファでバッファリングされた文字型入力ストリームを作成する。
-
BufferedReader(Reader, int)
- 指定されたサイズのバッファでバッファリングされた文字型入力ストリームを作成する。
-
close()
- ストリームをクローズする。
-
mark(int)
- ストリームの現在位置にマークを付ける。
-
markSupported()
- ストリームがマーク付けをするための mark() をサポートしているかどうかを返す。
-
read()
- 1文字を読み込む。
-
read(char[], int, int)
- 配列の一部に(複数の)文字を読み込む。
-
readLine()
- テキストを一行読み込みます。
-
ready()
- ストリームが読み込み可能な状態かどうかを返す。
-
reset()
- ストリームを最近付けられたマークへリセットする。
-
skip(long)
- 文字をスキップする。
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
- 1文字を読み込みます。
- 例外: IOException
- I/O エラーが発生した場合。
- オーバーライド:
- Reader クラスの read
read
public int read(char cbuf[],
int off,
int len) throws IOException
- 配列の一部に(複数の)文字を読み込みます。
普通、このメソッドはこのストリームの文字バッファから文字を取得し、必要に応じて下層のストリームからそのバッファを埋めます。しかし、バッファが空で、マークが無効で、要求された長さが少なくともバッファと同じ位の大きさの場合、このメソッドは下層のストリームから与えられた配列に直接文字を読み込みます。こうして、余分な BufferedReader
は、データを不必要にはコピーしません。
- パラメータ:
- cbuf - 書き込み先バッファ
- off - 文字の格納を開始するオフセット位置
- len - 読み込むべき最大文字数
- 返り値:
- 読み込んだバイト数。ストリームの最後まで達した場合は -1。
- 例外: IOException
- I/O エラーが発生した場合。
- オーバーライド:
- Reader クラスの read
readLine
public String readLine() throws IOException
- テキストを一行読み込みます。一つの行は、改行 ('\n')、復帰('\r')、または復帰とその直後に続く改行のいづれかにより終了したとみなされます。
- 返り値:
- 行に含まれる文字列。ただし行の終端コード、ストリームの最後に到達したときの null は含まれない。
- 例外: IOException
- I/O エラーが発生した場合。
skip
public long skip(long n) throws IOException
- 文字をスキップします。
- パラメータ:
- n - スキップする文字の数
- 返り値:
- 実際にスキップされた文字の数
- 例外: IOException
- I/O エラーが発生した場合。
- オーバーライド:
- Reader クラスの skip
ready
public boolean ready() throws IOException
- ストリームが読み込み可能かどうかを返します。バッファリングされた文字型ストリームは空白ではないか、または下層の文字型ストリームが読み込み可能であるときに読み込み可能です。
- 例外: IOException
- I/O エラーが発生した場合。
- オーバーライド:
- Reader クラスの ready
markSupported
public boolean markSupported()
- ストリームがマーク付けをする mark() オペレーションをサポートしているかどうかを返します。
- オーバーライド:
- Reader クラスの markSupported
mark
public void mark(int readAheadLimit) throws IOException
- ストリームの現在位置にマークを付ける。この後に reset()を呼び出すとストリームをこの位置へ戻そうとします。
- パラメータ:
- readAheadLimit - mark を保った状態で読み込むことができる文字数の上限。この数だけの文字を読み込んでしまうと、ストリームの resetに失敗することがあります。
入力バッファのサイズより大きい限界値を指定すると、そのサイズが限度より小さくない新しいバッファが割り当てる。そのため、大きな値は注意して使用する必要がある。
- 例外: IllegalArgumentException
- readAheadLimit < 0 の場合
- 例外: IOException
- I/O エラーが発生した場合。
- オーバーライド:
- Reader クラスの mark
reset
public void reset() throws IOException
- 最近の mark位置へストリームをリセットします。
- 例外: IOException
- ストリームにマークが全く付けられなかったり、またはマークが無効になってしまった場合。
- オーバーライド:
- Reader クラスの reset
close
public void close() throws IOException
- ストリームをクローズします。
- 例外: IOException
- I/O エラーが発生した場合。
- オーバーライド:
- Reader クラスの close
全てのパッケージ クラス階層 このパッケージ 前項目 次項目 インデックス