クラスLineNumberReader

すべての実装されたインタフェース:
Closeable, AutoCloseable, Readable

public class LineNumberReader extends BufferedReader
行番号を追跡して管理する、バッファリングされた文字入力ストリームです。 このクラスは、現在の行番号をそれぞれ設定および取得するためのsetLineNumber(int)メソッドおよびgetLineNumber()メソッドを定義します。

デフォルトでは、行番号は0から始まります。 この数値は、データの読取り時に「終了文字」ごとに増分され、ストリームの最後の文字が行終了記号でない場合はストリームの最後に増分されます。 この番号は、setLineNumber(int)へのコールで変更できます。 ただし、setLineNumber(int)はストリームの現在の位置を実際には変更しません。getLineNumber()によって返される値のみを変更することに注意してください。

行は、行送り('')、キャリッジ・リターン('\r')、または行送りの直後に続くキャリッジ・リターン、ストリームの終わりに続く前の終端文字、または別の終端文字が前に付いていないストリームの終わりのいずれかによってterminatedとみなされます。

導入されたバージョン:
1.1
  • コンストラクタの詳細

    • 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

      public int getLineNumber()
      行番号の現在値を取得します。
      戻り値:
      現在の行番号
      関連項目:
    • read

      public int read() throws IOException
      単一の文字を読み込みます。 行末記号は1個の改行文字('\n')に変換されます。 現在の行番号は、行終端文字が読み取られるたびに、またはストリームの終わりに達し、ストリームの最後の文字が行終端文字でないときに増分されます。
      オーバーライド:
      read、クラスBufferedReader
      戻り値:
      読み込まれた文字。ストリームの終わりに達した場合は -1
      スロー:
      IOException - 入出力エラーが発生した場合
    • read

      public int read(char[] cbuf, int off, int len) throws IOException
      配列の一部に文字を読み込みます。 このメソッドは入力の一部が有効になるか、入出力エラーが発生するか、あるいはストリームの終わりに達するまでブロックします。

      lenが0の場合、文字は読み取られず、0が返されます。そうしないと、少なくとも1文字の読取りが試行されます。 ストリームが終了しているため、使用できる文字がない場合、値-1が返されます。そうしないと、少なくとも1つの文字が読み取られ、cbufに格納されます。

      行末記号は1個の改行文字('\n')に変換されます。 現在の行番号は、行終端文字が読み取られるたびに、またはストリームの終わりに達し、ストリームの最後の文字が行終端文字でないときに増分されます。

      オーバーライド:
      read、クラスBufferedReader
      パラメータ:
      cbuf - 転送先バッファ
      off - 文字の格納開始オフセット
      len - 読み込む文字の最大数
      戻り値:
      読み込まれた文字数。ストリームの終わりに達した場合は -1
      スロー:
      IndexOutOfBoundsException - offが負、lenが負、またはlencbuf.length - offより大きい場合
      IOException - 入出力エラーが発生した場合
    • readLine

      public String readLine() throws IOException
      テキストを1行読み込みます。 行末記号は1個の改行文字('\n')に変換されます。 現在の行番号は、行終端文字が読み取られるたびに、またはストリームの終わりに達し、ストリームの最後の文字が行終端文字でないときに増分されます。
      オーバーライド:
      readLine、クラスBufferedReader
      戻り値:
      「行終了文字」を含まない行の内容を含む文字列。ストリームの終わりに達した場合はnull
      スロー:
      IOException - 入出力エラーが発生した場合
      関連項目:
    • mark

      public void mark(int readAheadLimit) throws IOException
      ストリームの現在位置にマークを設定します。 以降のreset()の呼出しでは、この位置へのストリームの再配置を試み、それに合わせて行番号もリセットされます。
      オーバーライド:
      mark、クラスBufferedReader
      パラメータ:
      readAheadLimit - マークを保持しながら読み込むことができる文字数の上限。 この数の文字を読み込んだあとでストリームをリセットしようとすると失敗する場合がある。
      スロー:
      IOException - 入出力エラーが発生した場合
    • reset

      public void reset() throws IOException
      ストリームを、もっとも新しいマーク位置にリセットします。
      オーバーライド:
      reset、クラスBufferedReader
      スロー:
      IOException - ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合