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