@Deprecated public class LineNumberInputStream extends FilterInputStream
行とはバイトの連なりであり、復帰文字 ('\r'
)、改行文字 ('\n'
)、または復帰文字とそれに続く改行文字で終わります。これら 3 種類のすべてで、行を終了させる文字は 1 個の改行文字として返されます。
行番号は 0
から始まり、read
が改行文字を返すたびに 1
ずつ増分します。
LineNumberReader
in
コンストラクタと説明 |
---|
LineNumberInputStream(InputStream in)
非推奨。
指定された入力ストリームから読み込む、新しい行番号付き入力ストリームを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
int |
available()
非推奨。
ブロックせずに入力ストリームから読み込むことができるバイト数を返します。
|
int |
getLineNumber()
非推奨。
現在の行番号を返します。
|
void |
mark(int readlimit)
非推奨。
この入力ストリームの現在位置にマークを設定します。
|
int |
read()
非推奨。
この入力ストリームからデータの次のバイトを読み込みます。
|
int |
read(byte[] b, int off, int len)
非推奨。
最大
len バイトのデータを、この入力ストリームからバイト配列に読み込みます。 |
void |
reset()
非推奨。
このストリームを、この入力ストリームで最後に
mark メソッドが呼び出されたときの位置に再配置します。 |
void |
setLineNumber(int lineNumber)
非推奨。
行番号を指定された引数で設定します。
|
long |
skip(long n)
非推奨。
この入力ストリームから
n バイトのデータをスキップして破棄します。 |
close, markSupported, read
public LineNumberInputStream(InputStream in)
in
- ベースとなる入力ストリーム。public int read() throws IOException
0
- 255
の範囲の int
として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、-1
が返されます。入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。
LineNumberInputStream
の read
メソッドはそのベースとなる入力ストリームの read
メソッドを呼び出します。入力に現れる復帰文字と改行文字を調べ、適切な行番号を保ちます。復帰文字と復帰文字+改行文字は、どちらも 1 個の改行文字に変換されます。
read
、クラス: FilterInputStream
-1
。IOException
- 入出力エラーが発生した場合。FilterInputStream.in
, getLineNumber()
public int read(byte[] b, int off, int len) throws IOException
len
バイトのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、入力の一部が利用できるようになるまでブロックします。
LineNumberInputStream
の read
メソッドは、引数を取らない read
メソッドを繰り返し呼び出してバイト配列に書き込みます。
read
、クラス: FilterInputStream
b
- データの読み込み先のバッファー。off
- データの開始オフセット。len
- 読み込まれる最大バイト数。-1
。IOException
- 入出力エラーが発生した場合。read()
public long skip(long n) throws IOException
n
バイトのデータをスキップして破棄します。さまざまな理由から、skip
メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0
の場合もあります。スキップされた実際のバイト数が返されます。n
が負の場合、バイトはスキップされません。
LineNumberInputStream
の skip
メソッドはバイト配列を作成し、n
バイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。
skip
、クラス: FilterInputStream
n
- スキップされるバイト数。IOException
- 入出力エラーが発生した場合。FilterInputStream.in
public void setLineNumber(int lineNumber)
lineNumber
- 新規行番号。getLineNumber()
public int getLineNumber()
setLineNumber(int)
public int available() throws IOException
ブロックせずにベースとなる入力ストリームから k 個の文字を読み込み可能な場合、LineNumberInputStream
がブロックせずに読み込み可能な文字数は k/2 となる可能性があることに注意してください。これは、ベースとなる入力ストリームからの k 個の文字が k/2 対の '\r'
と '\n'
である可能性もあり、これが k/2 個の '\n'
文字に変換されるかもしれないからです。
available
、クラス: FilterInputStream
IOException
- 入出力エラーが発生した場合。FilterInputStream.in
public void mark(int readlimit)
reset
メソッドを呼び出すと、最後にマークされた位置にこのストリームが再配置されるため、以降の読み込みでは同じバイトが再度読み込まれます。
LineNumberInputStream
の mark
メソッドは、private 変数に現在の行番号を記録してから、ベースとなる入力ストリームの mark
メソッドを呼び出します。
mark
、クラス: FilterInputStream
readlimit
- マーク位置が無効になる前に読み込み可能なバイト数の上限。FilterInputStream.in
, reset()
public void reset() throws IOException
mark
メソッドが呼び出されたときの位置に再配置します。
LineNumberInputStream
の reset
メソッドは、まず行番号を mark
メソッドが呼び出された時点の値にリセットし、それからベースとなる入力ストリームの reset
メソッドを呼び出します。
ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。ストリームがそのようなタイプではない場合、パーサーは失敗した時点で例外を発生させます。これにより、readlimit バイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。
reset
、クラス: FilterInputStream
IOException
- 入出力エラーが発生した場合。FilterInputStream.in
, mark(int)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.