java.lang.Object
java.io.Reader
java.io.BufferedReader
java.io.LineNumberReader
- すべての実装されたインタフェース:
Closeable,AutoCloseable,Readable
public class LineNumberReader extends BufferedReader
行番号を追跡して管理する、バッファリングされた文字入力ストリームです。 このクラスは、現在の行番号をそれぞれ設定および取得するための
setLineNumber(int)メソッドおよびgetLineNumber()メソッドを定義します。
デフォルトでは、行番号は0から始まります。 この数値は、データの読取り時に「終了文字」ごとに増分され、ストリームの最後の文字が行終了記号でない場合はストリームの最後に増分されます。 この番号は、setLineNumber(int)へのコールで変更できます。 ただし、setLineNumber(int)は、ストリーム内の現在位置を実際に変更するのではなく、getLineNumber()から返される値を変更するだけです。
行は、行送り('')、キャリッジ・リターン('\r')、または行送りの直後に続くキャリッジ・リターン、ストリームの終わりに続く前の終端文字、または別の終端文字が前に付いていないストリームの終わりのいずれかによってterminatedとみなされます。
- 導入されたバージョン:
- 1.1
-
フィールドのサマリー
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明LineNumberReader(Reader in)デフォルトの入力バッファ・サイズを使用して、行番号付きリーダーを新しく作成します。LineNumberReader(Reader in, int sz)指定されたサイズのバッファに文字を読み込む、行番号付きリーダーを新しく作成します。 -
メソッドのサマリー
修飾子と型メソッド説明int行番号の現在値を取得します。voidmark(int readAheadLimit)ストリームの現在位置にマークを設定します。intread()単一の文字を読み込みます。intread(char[] cbuf, int off, int len)配列の一部に文字を読み込みます。readLine()テキストを1行読み込みます。voidreset()ストリームを、もっとも新しいマーク位置にリセットします。voidsetLineNumber(int lineNumber)現在の行番号を設定します。longskip(long n)文字をスキップします。クラス java.io.BufferedReaderで宣言されたメソッド
close, lines, markSupported, readyクラス java.io.Readerで宣言されたメソッド
nullReader, read, read, transferTo
-
コンストラクタの詳細
-
LineNumberReader
public LineNumberReader(Reader in)デフォルトの入力バッファ・サイズを使用して、行番号付きリーダーを新しく作成します。- パラメータ:
in- ベースとなるストリームを提供するReaderオブジェクト
-
LineNumberReader
public LineNumberReader(Reader in, int sz)指定されたサイズのバッファに文字を読み込む、行番号付きリーダーを新しく作成します。- パラメータ:
in- ベースとなるストリームを提供するReaderオブジェクトsz- バッファのサイズを指定するint
-
-
メソッドの詳細
-
setLineNumber
public void setLineNumber(int lineNumber)現在の行番号を設定します。- パラメータ:
lineNumber- 行番号を指定するint- 関連項目:
getLineNumber()
-
getLineNumber
public int getLineNumber()行番号の現在値を取得します。- 戻り値:
- 現在の行番号
- 関連項目:
setLineNumber(int)
-
read
public int read() throws IOException単一の文字を読み込みます。 行末記号は1個の改行文字('\n')に変換されます。 現在の行番号は、行終端文字が読み取られるたびに、またはストリームの終わりに達し、ストリームの最後の文字が行終端文字でないときに増分されます。- オーバーライド:
read、クラス:BufferedReader- 戻り値:
- 読み込まれた文字。ストリームの終わりに達した場合は -1
- 例外:
IOException- 入出力エラーが発生した場合
-
read
public int read(char[] cbuf, int off, int len) throws IOException配列の一部に文字を読み込みます。 行末記号は1個の改行文字('\n')に変換されます。 現在の行番号は、行終端文字が読み取られるたびに、またはストリームの終わりに達し、ストリームの最後の文字が行終端文字でないときに増分されます。- オーバーライド:
read、クラス:BufferedReader- パラメータ:
cbuf- 転送先バッファoff- 文字の格納開始オフセットlen- 読み込む文字の最大数- 戻り値:
- 読み込まれた文字数。ストリームの終わりに達している場合は -1
- 例外:
IOException- 入出力エラーが発生した場合IndexOutOfBoundsException-offが負の場合、またはlenが負の場合、またはlenがcbuf.length - offより大きい場合
-
readLine
public String readLine() throws IOExceptionテキストを1行読み込みます。 行末記号は1個の改行文字('\n')に変換されます。 現在の行番号は、行終端文字が読み取られるたびに、またはストリームの終わりに達し、ストリームの最後の文字が行終端文字でないときに増分されます。- オーバーライド:
readLine、クラス:BufferedReader- 戻り値:
- 行の内容を含む文字列、ただし行の終端文字は含めない。ストリームの終わりに達している場合は
null - 例外:
IOException- 入出力エラーが発生した場合- 関連項目:
Files.readAllLines(java.nio.file.Path, java.nio.charset.Charset)
-
skip
public long skip(long n) throws IOException文字をスキップします。- オーバーライド:
skip、クラス:BufferedReader- パラメータ:
n- スキップする文字数- 戻り値:
- 実際にスキップした文字数
- 例外:
IOException- 入出力エラーが発生した場合IllegalArgumentException-nが負の値の場合
-
mark
public void mark(int readAheadLimit) throws IOExceptionストリームの現在位置にマークを設定します。 以降のreset()の呼出しでは、この位置へのストリームの再配置を試み、それに合わせて行番号もリセットされます。- オーバーライド:
mark、クラス:BufferedReader- パラメータ:
readAheadLimit- マークを保持しながら読み込むことができる文字数の上限。 この数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある。- 例外:
IOException- 入出力エラーが発生した場合
-
reset
public void reset() throws IOExceptionストリームを、もっとも新しいマーク位置にリセットします。- オーバーライド:
reset、クラス:BufferedReader- 例外:
IOException- ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合
-