|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
java.io.LineNumberInputStream
@Deprecated public class LineNumberInputStream
このクラスは入力ストリームフィルタであり、現在の行番号を監視して保持する機能が追加されています。
行とはバイトの連なりであり、キャリッジリターン文字 ('\r')、改行文字 ('\n')、またはキャリッジリターン文字とそれに続く改行文字で終ります。これら 3 種類のすべてで、行を終了させる文字は 1 個の改行文字として返されます。
行番号は 0 から始まり、read が改行文字を返すたびに 1 ずつ増分します。
LineNumberReader| フィールドの概要 |
|---|
| クラス java.io.FilterInputStream から継承されたフィールド |
|---|
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 バイト分をスキップおよび破棄します。 |
| クラス java.io.FilterInputStream から継承されたメソッド |
|---|
close, markSupported, read |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public LineNumberInputStream(InputStream in)
in - 基本となる入力ストリーム| メソッドの詳細 |
|---|
public int read()
throws IOException
0 〜 255 の範囲の int として返されます。ストリームの終わりに達したために読み込むバイトがない場合は、値 -1 が返されます。入力データが読み込めるようになるか、ファイルの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。
LineNumberInputStream の read メソッドが、基本となる入力ストリームの read メソッドを呼び出します。入力に現れるキャリッジリターン文字と改行文字を調べ、適切な行番号を保ちます。キャリッジリターン文字とキャリッジリターン+改行文字は、どちらも 1 個の改行文字に変換されます。
FilterInputStream 内の read-1
IOException - 入出力エラーが発生した場合FilterInputStream.in,
getLineNumber()
public int read(byte[] b,
int off,
int len)
throws IOException
len バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。このメソッドは、入力の一部が利用できるようになるまでブロックします。
LineNumberInputStream の read メソッドは引数を取らない read メソッドを繰り返し呼び出して配列に書き込みます。
FilterInputStream 内の readb - データの読み込み先のバッファoff - データの開始オフセットlen - 読み込まれる最大バイト数
-1
IOException - 入出力エラーが発生した場合read()
public long skip(long n)
throws IOException
n バイト分をスキップおよび破棄します。さまざまな理由から、skip メソッドは指定よりも少ないバイト数しかスキップしないことがあります。0 の場合もあります。スキップされた実際のバイト数が返されます。n が負の場合、バイトはスキップされません。
LineNumberInputStream の skip メソッドはバイト配列を作成し、n バイトが読み込まれるまで、またはストリームの終わりに達するまで繰り返しその中に読み込みます。
FilterInputStream 内の skipn - スキップするバイト数
IOException - 入出力エラーが発生した場合FilterInputStream.inpublic 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' 文字に変換されるかもしれないからです。
FilterInputStream 内の availableIOException - 入出力エラーが発生した場合FilterInputStream.inpublic void mark(int readlimit)
reset メソッドを呼び出すと、最後にマークが設定された位置にストリームを再設定するため、次回の読み込み操作では同じバイトから読み込むことになります。
LineNumberInputStream の mark メソッドは、private 変数に現在の行番号を記録してから、基本となる入力ストリームの mark メソッドを呼び出します。
FilterInputStream 内の markreadlimit - マーク位置が無効になる前に読み込み可能なバイトの最大リミットFilterInputStream.in,
reset()
public void reset()
throws IOException
mark メソッドが呼び出されたときのマーク位置に再設定します。
LineNumberInputStream の reset メソッドは、まず行番号を mark メソッドが呼び出された時点の値にリセットし、それから基本となる入力ストリームの reset メソッドを呼び出します。
ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。ストリームがそのようなタイプではない場合、パーサーは失敗した時点で例外を発生させます。これにより、readlimit バイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。
FilterInputStream 内の resetIOException - 入出力エラーが発生した場合FilterInputStream.in,
mark(int)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。