- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- java.io.LineNumberInputStream
-
- 实现的所有接口
-
Closeable
,AutoCloseable
@Deprecatedpublic class LineNumberInputStreamextends FilterInputStream
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
- 另请参见:
-
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
最多len
字节的数据读入一个字节数组。void
reset()
已过时。将此流重新定位到上次在此输入流上调用mark
方法时的位置。void
setLineNumber(int lineNumber)
已过时。将行号设置为指定的参数。long
skip(long n)
已过时。跳过并从此输入流中丢弃n
字节的数据。-
声明方法的类 java.io.FilterInputStream
close, markSupported, read
-
声明方法的类 java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
构造方法详细信息
-
LineNumberInputStream
public LineNumberInputStream(InputStream in)
Deprecated.构造一个换行符号输入流,从指定的输入流中读取其输入。- 参数
-
in
- 基础输入流。
-
-
方法详细信息
-
read
public int read() throws IOException
Deprecated.从此输入流中读取下一个数据字节。 值字节作为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
Deprecated.从此输入流len
最多len
字节的数据读入一个字节数组。 此方法将阻塞,直到某些输入可用。read
方法LineNumberInputStream
重复调用read
方法的零参数来填充字节数组。- 重写:
-
read
类FilterInputStream
- 参数
-
b
- 读取数据的缓冲区。 -
off
- 数据的起始偏移量。 -
len
- 读取的最大字节数。 - 结果
- 读入缓冲区的总字节数,如果没有更多数据,
-1
,因为已到达此流的末尾。 - 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
read()
-
skip
public long skip(long n) throws IOException
Deprecated.跳过并从此输入流中丢弃n
字节的数据。 由于各种原因,skip
方法可能最终跳过一些较小数量的字节,可能是0
。 返回跳过的实际字节数。 如果n
为负数,则不会跳过任何字节。该
skip
的方法LineNumberInputStream
创建一个字节数组,然后重复读入,直到n
字节已被读出或流的结尾已经到达。- 重写:
-
skip
类FilterInputStream
- 参数
-
n
- 要跳过的字节数。 - 结果
- 跳过的实际字节数。
- 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
FilterInputStream.in
-
setLineNumber
public void setLineNumber(int lineNumber)
Deprecated.将行号设置为指定的参数。- 参数
-
lineNumber
- 新的行号。 - 另请参见:
-
getLineNumber()
-
getLineNumber
public int getLineNumber()
Deprecated.返回当前行号。- 结果
- 当前行号。
- 另请参见:
-
setLineNumber(int)
-
available
public int available() throws IOException
Deprecated.返回可以在不阻塞的情况下从此输入流中读取的字节数。请注意,如果基础输入流能够无阻塞地提供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)
Deprecated.标记此输入流中的当前位置。 随后对reset
方法的调用会在最后标记的位置重新定位此流,以便后续读取重新读取相同的字节。该
mark
的方法LineNumberInputStream
记得在一个私有变量的当前行号,然后调用mark
基础输入流的方法。- 重写:
-
mark
在类FilterInputStream
- 参数
-
readlimit
- 标记位置变为无效之前可读取的最大字节数限制。 - 另请参见:
-
FilterInputStream.in
,reset()
-
reset
public void reset() throws IOException
Deprecated.将此流重新定位到上次在此输入流上调用mark
方法时的位置。reset
方法LineNumberInputStream
将行号重置为调用mark
方法时的行号,然后调用基础输入流的reset
方法。流标记旨在用于需要提前阅读以查看流中的内容的情况。 通常,这通过调用一些通用解析器最容易完成。 如果流是解析器处理的类型,它只是愉快地开始。 如果流不是那种类型,解析器应该在失败时抛出异常,如果它发生在readlimit字节内,它允许外部代码重置流并尝试另一个解析器。
- 重写:
-
reset
在类FilterInputStream
- 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
FilterInputStream.in
,mark(int)
-
-