|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
java.io.LineNumberInputStream
@Deprecated public class LineNumberInputStream
此类是一个输入流过滤器,它提供跟踪当前行号的附加功能。
行是以回车符 ('\r')、换行符 ('\n') 或回车符后面紧跟换行符结尾的字节序列。在所有这三种情况下,都以单个换行符形式返回行终止字符。
行号以 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 个数据字节从此输入流读入 byte 数组。 |
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 方法。它检查输入中的回车和换行符,并相应地修改当前行号。回车符或后跟换行符的回车两者都可转换为单个换行符。
FilterInputStream 中的 read-1。
IOException - 如果发生 I/O 错误。FilterInputStream.in,
getLineNumber()
public int read(byte[] b,
int off,
int len)
throws IOException
len 个数据字节从此输入流读入 byte 数组。在某个输入可用前,此方法一直阻塞。
LineNumberInputStream 的 read 方法重复调用 0 参数的 read 方法来填充 byte 数组。
FilterInputStream 中的 readb - 读入数据的缓冲区。off - 数据的初始偏移量。len - 读取的最大字节数。
-1。
IOException - 如果发生 I/O 错误。read()
public long skip(long n)
throws IOException
n 个数据字节。出于各种原因,该 skip 方法跳过某些较小的字节数(可能是 0)后结束。返回跳过的实际字节数。如果 n 为负,则不跳过任何字节。
LineNumberInputStream 的 skip 方法创建 byte 数组,然后重复向其读入,直到读够 n 个字节或已到达流的末尾为止。
FilterInputStream 中的 skipn - 要跳过的字节数。
IOException - 如果发生 I/O 错误。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 - 如果发生 I/O 错误。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 - 如果发生 I/O 错误。FilterInputStream.in,
mark(int)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。