java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.LineNumberInputStream
- 所有已实现的接口:
Closeable,AutoCloseable
已弃用。
此类错误地假定字节足以表示字符。从 JDK 1.1 开始,对字符流进行操作的首选方法是通过新的字符流类,其中包括一个用于计算行号的类。
此类是一个输入流过滤器,它提供了跟踪当前行号的附加功能。
一行是以回车符 ('\r')、换行符 ('\n') 或紧跟换行符的回车符结尾的字节序列。在所有这三种情况下,行终止字符都作为单个换行符返回。
行号从 0 开始,并在 read 返回换行符时递增 1。
- 自从:
- 1.0
- 参见:
-
字段摘要
在类 java.io.FilterInputStream 中声明的字段
in -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述int已弃用。返回可以从该输入流中无阻塞地读取的字节数。int已弃用。返回当前行号。voidmark(int readlimit) 已弃用。标记此输入流中的当前位置。intread()已弃用。从此输入流中读取下一个字节的数据。intread(byte[] b, int off, int len) 已弃用。从此输入流中读取最多len字节的数据到字节数组中。voidreset()已弃用。将此流重新定位到上次对此输入流调用mark方法时的位置。voidsetLineNumber(int lineNumber) 已弃用。将行号设置为指定的参数。longskip(long n) 已弃用。跳过并丢弃此输入流中的n字节数据。在类 java.io.FilterInputStream 中声明的方法
close, markSupported, read在类 java.io.InputStream 中声明的方法
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
构造方法详细信息
-
LineNumberInputStream
已弃用。构造一个换行号输入流,它从指定的输入流中读取其输入。- 参数:
in- 底层输入流。
-
-
方法详情
-
read
已弃用。从此输入流中读取下一个字节的数据。值字节作为int在0到255范围内返回。如果因为已到达流的末尾而没有可用字节,则返回值-1。此方法会阻塞,直到输入数据可用、检测到流结束或抛出异常为止。LineNumberInputStream的read方法调用底层输入流的read方法。它检查输入中的回车符和换行符,并根据需要修改当前行号。回车符或回车后跟换行符都被转换为单个换行符。- 重写:
read在类FilterInputStream中- 返回:
-
下一个数据字节,如果到达此流的末尾,则为
-1。 - 抛出:
IOException- 如果发生 I/O 错误。- 参见:
-
read
已弃用。从此输入流中读取最多len字节的数据到字节数组中。在某些输入可用之前,此方法会阻塞。LineNumberInputStream的read方法重复调用零参数的read方法来填充字节数组。- 重写:
read在类FilterInputStream中- 参数:
b- 读取数据的缓冲区。off- 数据的起始偏移量。len- 读取的最大字节数。- 返回:
-
读入缓冲区的字节总数,如果因为已到达此流的末尾而没有更多数据,则为
-1。 - 抛出:
IOException- 如果发生 I/O 错误。- 参见:
-
skip
已弃用。跳过并丢弃此输入流中的n字节数据。由于各种原因,skip方法可能最终会跳过一些较少的字节,可能是0。返回实际跳过的字节数。如果n为负,则不会跳过任何字节。LineNumberInputStream的skip方法创建一个字节数组,然后重复读入它,直到读取了n个字节或到达流的末尾。- 重写:
skip在类FilterInputStream中- 参数:
n- 要跳过的字节数。- 返回:
- 实际跳过的字节数。
- 抛出:
IOException- 如果发生 I/O 错误。- 参见:
-
setLineNumber
public void setLineNumber(int lineNumber) 已弃用。将行号设置为指定的参数。- 参数:
lineNumber- 新的行号。- 参见:
-
getLineNumber
public int getLineNumber()已弃用。返回当前行号。- 返回:
- 当前行号。
- 参见:
-
available
已弃用。返回可以从该输入流中无阻塞地读取的字节数。请注意,如果底层输入流能够提供k输入字符无阻塞,
LineNumberInputStream可以保证只提供k/2 个字符没有阻塞,因为k来自底层输入流的字符可能包括k/2 对'\r'和'\n',它们被转换为k/2'\n'个字符。- 重写:
available在类FilterInputStream中- 返回:
- 可以无阻塞地从此输入流中读取的字节数。
- 抛出:
IOException- 如果发生 I/O 错误。- 参见:
-
mark
public void mark(int readlimit) 已弃用。标记此输入流中的当前位置。对reset方法的后续调用将此流重新定位在最后标记的位置,以便后续读取重新读取相同的字节。LineNumberInputStream的mark方法在私有变量中记住当前行号,然后调用底层输入流的mark方法。- 重写:
mark在类FilterInputStream中- 参数:
readlimit- 在标记位置变为无效之前可以读取的最大字节数限制。- 参见:
-
reset
已弃用。将此流重新定位到上次对此输入流调用mark方法时的位置。LineNumberInputStream的reset方法将行号重置为调用mark方法时的行号,然后调用底层输入流的reset方法。流标记旨在用于需要提前阅读以查看流中内容的情况。通常这最容易通过调用一些通用解析器来完成。如果流是解析器处理的类型,它就会愉快地处理。如果流不是那种类型,则解析器在失败时应该抛出一个异常,如果它发生在 readlimit 字节以内,则允许外部代码重置流并尝试另一个解析器。
- 重写:
reset在类FilterInputStream中- 抛出:
IOException- 如果发生 I/O 错误。- 参见:
-