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

クラスLineNumberInputStream

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

@Deprecated public class LineNumberInputStream extends FilterInputStream
非推奨。
このクラスは、文字がバイトによって適切に表現されるという誤った認識を前提としています。 JDK 1.1以降、文字ストリームの処理には、行番号をカウントするためのクラスが含まれている新しい文字ストリーム・クラスを使うことが推奨されています。
このクラスは入力ストリーム・フィルタであり、現在の行番号を監視して保持する機能が追加されています。

行とはバイトの連なりであり、復帰文字('\r')、改行文字('\n')、または復帰文字とそれに続く改行文字で終わります。 これら3種類のすべてで、行を終了させる文字は1個の改行文字として返されます。

行番号は0から始まり、readが改行文字を返すたびに1ずつ増分します。

導入されたバージョン:
1.0
関連項目:
LineNumberReader
  • フィールドのサマリー

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

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

    コンストラクタ
    コンストラクタ
    説明
    非推奨。
    指定された入力ストリームから読み込む、新しい行番号付き入力ストリームを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    非推奨。
    ブロックせずに入力ストリームから読み込むことができるバイト数を返します。
    int
    非推奨。
    現在の行番号を返します。
    void
    mark​(int readlimit)
    非推奨。
    この入力ストリームの現在位置にマークを設定します。
    int
    非推奨。
    この入力ストリームからデータの次のバイトを読み込みます。
    int
    read​(byte[] b, int off, int len)
    非推奨。
    最大lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。
    void
    非推奨。
    このストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。
    void
    setLineNumber​(int lineNumber)
    非推奨。
    行番号を指定された引数で設定します。
    long
    skip​(long n)
    非推奨。
    この入力ストリームからnバイトのデータをスキップして破棄します。

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

    close, markSupported, read

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

    nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

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

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

    • LineNumberInputStream

      public LineNumberInputStream(InputStream in)
      非推奨。
      指定された入力ストリームから読み込む、新しい行番号付き入力ストリームを作成します。
      パラメータ:
      in - ベースとなる入力ストリーム。
  • メソッドの詳細

    • read

      public int read() throws IOException
      非推奨。
      この入力ストリームからデータの次のバイトを読み込みます。 バイト値は、0 - 255の範囲のintとして返されます。 ストリームの終わりに達したために読み込むバイトがない場合は、-1が返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。

      LineNumberInputStreamreadメソッドはそのベースとなる入力ストリームのreadメソッドを呼び出します。 入力に現れる復帰文字と改行文字を調べ、適切な行番号を保ちます。 復帰文字と復帰文字+改行文字は、どちらも1個の改行文字に変換されます。

      オーバーライド:
      read、クラス: FilterInputStream
      戻り値:
      データの次のバイト。ストリームの終わりに達した場合は-1
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
      FilterInputStream.in, getLineNumber()
    • read

      public int read(byte[] b, int off, int len) throws IOException
      非推奨。
      最大lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。 このメソッドは、入力の一部が利用できるようになるまでブロックします。

      LineNumberInputStreamreadメソッドは、引数を取らないreadメソッドを繰返し呼び出してバイト配列に書き込みます。

      オーバーライド:
      read、クラス: FilterInputStream
      パラメータ:
      b - データの読込み先のバッファ。
      off - データの開始オフセット。
      len - 読み込まれる最大バイト数。
      戻り値:
      バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は-1
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
      read()
    • skip

      public long skip(long n) throws IOException
      非推奨。
      この入力ストリームからnバイトのデータをスキップして破棄します。 さまざまな理由から、skipメソッドは指定よりも少ないバイト数しかスキップしないことがあります。0の場合もあります。 スキップされた実際のバイト数が返されます。 nが負の場合、バイトはスキップされません。

      LineNumberInputStreamskipメソッドはバイト配列を作成し、nバイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。

      オーバーライド:
      skip、クラス: FilterInputStream
      パラメータ:
      n - スキップされるバイト数。
      戻り値:
      実際にスキップされたバイト数。
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
      FilterInputStream.in
    • setLineNumber

      public void setLineNumber(int lineNumber)
      非推奨。
      行番号を指定された引数で設定します。
      パラメータ:
      lineNumber - 新規行番号。
      関連項目:
      getLineNumber()
    • getLineNumber

      public int getLineNumber()
      非推奨。
      現在の行番号を返します。
      戻り値:
      現在の行番号。
      関連項目:
      setLineNumber(int)
    • available

      public int available() throws IOException
      非推奨。
      ブロックせずに入力ストリームから読み込むことができるバイト数を返します。

      ブロックせずにベースとなる入力ストリームからk個の文字を読込み可能な場合、LineNumberInputStreamがブロックせずに読込み可能な文字数はk/2となる可能性があることに注意してください。これは、ベースとなる入力ストリームからのk個の文字がk/2対の'\r''\n'である可能性もあり、これがk/2個の'\n'文字に変換されるかもしれないからです。

      オーバーライド:
      available、クラス: FilterInputStream
      戻り値:
      ブロックしないで入力ストリームから読み込むことができるバイト数。
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
      FilterInputStream.in
    • mark

      public void mark(int readlimit)
      非推奨。
      この入力ストリームの現在位置にマークを設定します。 これに続いてresetメソッドを呼び出すと、最後にマークされた位置にこのストリームが再配置されるため、以降の読込みでは同じバイトが再度読み込まれます。

      LineNumberInputStreammarkメソッドは、private変数に現在の行番号を記録してから、ベースとなる入力ストリームのmarkメソッドを呼び出します。

      オーバーライド:
      mark、クラス: FilterInputStream
      パラメータ:
      readlimit - マーク位置が無効になる前に読込み可能なバイト数の上限。
      関連項目:
      FilterInputStream.in, reset()
    • reset

      public void reset() throws IOException
      非推奨。
      このストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。

      LineNumberInputStreamresetメソッドは、まず行番号をmarkメソッドが呼び出された時点の値にリセットし、それからベースとなる入力ストリームのresetメソッドを呼び出します。

      ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。 これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。 ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。 ストリームがそのようなタイプではない場合、パーサーは失敗した時点で例外を発生させます。これにより、readlimitバイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。

      オーバーライド:
      reset、クラス: FilterInputStream
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
      FilterInputStream.in, mark(int)