モジュール java.base
パッケージ java.io

クラスLineNumberReader

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

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

デフォルトでは、行番号は0から始まります。 この番号は、データが読み込まれて行末記号のたびに増分し、setLineNumber(int)を呼び出すことで変更できます。 ただし、setLineNumber(int)は、ストリーム内の現在位置を実際に変更するのではなく、getLineNumber()から返される値を変更するだけです。

1行の終端は、改行('\n')か、復帰('\r')、または復帰とそれに続く改行のいずれかで認識されます。

導入されたバージョン:
1.1
  • フィールドのサマリー

    クラス java.io.Readerで宣言されたフィールド

    lock
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ 説明
    LineNumberReader​(Reader in)
    デフォルトの入力バッファ・サイズを使用して、行番号付きリーダーを新しく作成します。
    LineNumberReader​(Reader in, int sz)
    指定されたサイズのバッファに文字を読み込む、行番号付きリーダーを新しく作成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    int getLineNumber()
    行番号の現在値を取得します。
    void mark​(int readAheadLimit)
    ストリームの現在位置にマークを設定します。
    int read()
    単一の文字を読み込みます。
    int read​(char[] cbuf, int off, int len)
    配列の一部に文字を読み込みます。
    String readLine()
    テキストを1行読み込みます。
    void reset()
    ストリームを、もっとも新しいマーク位置にリセットします。
    void setLineNumber​(int lineNumber)
    現在の行番号を設定します。
    long skip​(long n)
    文字をスキップします。

    クラス java.io.BufferedReaderで宣言されたメソッド

    lines, markSupported, ready

    クラス java.io.Readerで宣言されたメソッド

    close, nullReader, read, read, transferTo

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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
      配列の一部に文字を読み込みます。 行末記号が読み込まれるたびに、現在の行番号が増分されます。
      オーバーライド:
      read、クラス: BufferedReader
      パラメータ:
      cbuf - 転送先バッファ
      off - 文字の格納開始オフセット
      len - 読み込む文字の最大数
      戻り値:
      読み込まれた文字数。ストリームの終わりに達している場合は -1
      例外:
      IOException - 入出力エラーが発生した場合
      IndexOutOfBoundsException - offが負の場合、またはlenが負の場合、またはlencbuf.length - offより大きい場合
    • readLine

      public String readLine() throws IOException
      テキストを1行読み込みます。 行末記号が読み込まれるたびに、現在の行番号が増分されます。
      オーバーライド:
      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 - ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合