java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.LineNumberInputStream
- 所有已实现的接口:
-
Closeable,AutoCloseable
Deprecated.
This class incorrectly assumes that bytes adequately represent characters. As of JDK 1.1, the preferred way to operate on character streams is via the new character-stream classes, which include a class for counting line numbers.
这个类是一个输入流过滤器,提供了跟踪当前行号的附加功能。
一行是以回车字符('\r')、换行字符('\n')或者紧接着回车字符后面跟着换行字符结束的字节序列。在这三种情况下,行终止字符会作为单个换行字符返回。
行号从0开始,当一个read返回一个换行字符时,行号会增加1。
- 自从:
- 1.0
- 参见:
-
Field Summary
Fields declared in class java.io.FilterInputStream
in -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint已弃用。返回可以从该输入流中读取而不阻塞的字节数。int已弃用。返回当前行号。voidmark(int readlimit) 已弃用。标记此输入流中的当前位置。intread()已弃用。从此输入流中读取下一个字节的数据。intread(byte[] b, int off, int len) 已弃用。从此输入流中最多读取len字节的数据到一个字节数组中。voidreset()已弃用。将此流重新定位到上次在此输入流上调用mark方法时的位置。voidsetLineNumber(int lineNumber) 已弃用。将行号设置为指定的参数。longskip(long n) 已弃用。跳过并丢弃此输入流中的n字节数据。Methods declared in class java.io.FilterInputStream
close, markSupported, readMethods declared in class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Constructor Details
-
LineNumberInputStream
Deprecated.构造一个从指定输入流读取数据的行号输入流。- 参数:
-
in- 底层输入流。
-
-
Method Details
-
read
Deprecated.从此输入流中读取下一个字节的数据。值字节作为一个int在范围0到255内返回。如果没有字节可用,因为已到达流的末尾,则返回值-1。此方法会阻塞,直到有输入数据可用、检测到流的末尾或抛出异常。LineNumberInputStream的read方法调用底层输入流的read方法。它检查输入中的回车符和换行符,并根据需要修改当前行号。回车字符或回车后跟随换行字符都会被转换为单个换行字符。- 覆盖:
-
read在类FilterInputStream - 返回:
-
下一个数据字节,如果到达流的末尾则返回
-1。 - 抛出:
-
IOException- 如果发生I/O错误。 - 参见:
-
read
Deprecated.从此输入流中最多读取len字节的数据到一个字节数组中。此方法会阻塞,直到有输入可用。LineNumberInputStream的read方法重复调用零参数的read方法来填充字节数组。- 覆盖:
-
read在类FilterInputStream - 参数:
-
b- 要读取数据的缓冲区。 -
off- 数据的起始偏移量。 -
len- 要读取的最大字节数。 - 返回:
-
读入缓冲区的总字节数,如果没有更多数据因为到达流的末尾则返回
-1。 - 抛出:
-
IOException- 如果发生I/O错误。 - 参见:
-
skip
Deprecated.跳过并丢弃此输入流中的n字节数据。skip方法可能由于各种原因而最终跳过一些较小数量的字节,可能为0。返回实际跳过的字节数。如果n为负数,则不会跳过任何字节。LineNumberInputStream的skip方法创建一个字节数组,然后重复读取直到读取了n字节或到达流的末尾。- 覆盖:
-
skip在类FilterInputStream - 参数:
-
n- 要跳过的字节数。 - 返回:
- 实际跳过的字节数。
- 抛出:
-
IOException- 如果发生I/O错误。 - 参见:
-
setLineNumber
public void setLineNumber(int lineNumber) Deprecated.将行号设置为指定的参数。- 参数:
-
lineNumber- 新的行号。 - 参见:
-
getLineNumber
public int getLineNumber()Deprecated.返回当前行号。- 返回:
- 当前行号。
- 参见:
-
available
Deprecated.返回可以从该输入流中读取而不阻塞的字节数。请注意,如果底层输入流能够提供k个输入字符而不阻塞,那么
LineNumberInputStream只能保证提供k/2个字符而不阻塞,因为来自底层输入流的k个字符可能由k/2对'\r'和'\n'组成,这些字符会被转换为k/2个'\n'字符。- 覆盖:
-
available在类FilterInputStream - 返回:
- 可以从该输入流中读取而不阻塞的字节数。
- 抛出:
-
IOException- 如果发生I/O错误。 - 参见:
-
mark
public void mark(int readlimit) Deprecated.标记此输入流中的当前位置。随后调用reset方法会将此流重新定位到最后标记的位置,以便后续读取重新读取相同的字节。LineNumberInputStream的mark方法会将当前行号记住在一个私有变量中,然后调用底层输入流的mark方法。- 覆盖:
-
mark在类FilterInputStream - 参数:
-
readlimit- 在标记位置变为无效之前可以读取的最大字节数。 - 参见:
-
reset
Deprecated.将此流重新定位到上次在此输入流上调用mark方法时的位置。LineNumberInputStream的reset方法将行号重置为调用mark方法时的行号,然后调用底层输入流的reset方法。流标记旨在用于需要向前读取一点以查看流中内容的情况。通常,通过调用一些通用解析器最容易实现这一点。如果流是解析器处理的类型,它会继续正常运行。如果流不是该类型,则解析器在失败时应抛出异常,如果在readlimit字节内发生异常,则外部代码可以重置流并尝试另一个解析器。
- 覆盖:
-
reset在类FilterInputStream - 抛出:
-
IOException- 如果发生I/O错误。 - 参见:
-