@Deprecated public class LineNumberInputStream extends FilterInputStream
行是以回车符( '\r' ),换行字符( '\n' )结尾的字节序列,或紧跟着换行字符的回车符。 在所有三种情况下,行终止字符都作为单个换行符返回。
行号开始于0 ,和被增加1当read返回换行符。
LineNumberReader
in| Constructor and Description |
|---|
LineNumberInputStream(InputStream in)
已弃用
构造从指定输入流读取其输入的换行符输入流。
|
| Modifier and Type | Method and Description |
|---|---|
int |
available()
已弃用
返回可以从该输入流读取而不阻塞的字节数。
|
int |
getLineNumber()
已弃用
返回当前行号。
|
void |
mark(int readlimit)
已弃用
标记此输入流中的当前位置。
|
int |
read()
已弃用
从该输入流读取下一个数据字节。
|
int |
read(byte[] b, int off, int len)
已弃用
从该输入流读取最多
len个字节的数据为字节数组。
|
void |
reset()
已弃用
将此流重新定位到最后在此输入流上调用
mark方法时的位置。
|
void |
setLineNumber(int lineNumber)
已弃用
将行号设置为指定的参数。
|
long |
skip(long n)
已弃用
跳过并丢弃来自此输入流的
n字节的数据。
|
close, markSupported, readpublic LineNumberInputStream(InputStream in)
in - 底层输入流。
public int read()
throws IOException
int返回,范围为0至255 。
如果没有字节可用,因为流已经到达,则返回值-1 。
该方法阻塞直到输入数据可用,检测到流的结尾,或抛出异常。
该read的方法LineNumberInputStream调用read基础输入流的方法。 它检查输入中的回车符和换行符,并根据需要修改当前行号。 回车字符或回车符后跟换行符都将转换为单个换行符。
read在类别
FilterInputStream
-1 。
IOException - 如果发生I / O错误。
FilterInputStream.in ,
getLineNumber()
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()
public long skip(long n)
throws IOException
n字节数据。
由于各种原因, skip方法可能会跳过一些较小数量的字节,可能是0 。
返回实际跳过的字节数。
如果n为负,则不跳过字节。
该skip的方法LineNumberInputStream创建一个字节数组,然后重复读入,直到n字节已被读出或流的结尾已经到达。
skip在类别
FilterInputStream
n - 要跳过的字节数。
IOException - 如果发生I / O错误。
FilterInputStream.in
public 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'字符。
available在
FilterInputStream
IOException - 如果发生I / O错误。
FilterInputStream.in
public void mark(int readlimit)
reset方法的调用在最后一个标记的位置重新定位该流,以便后续读取重新读取相同的字节。
mark方法LineNumberInputStream私有变量中的当前行号,然后调用底层输入流的mark方法。
mark在
FilterInputStream
readlimit - 标记位置无效之前可以读取的最大字节数限制。
FilterInputStream.in ,
reset()
public void reset()
throws IOException
mark方法时的位置。
该reset的方法LineNumberInputStream复位的行号是在该时间的行号mark方法被调用,然后调用reset基础输入流的方法。
流标记旨在用于您需要先阅读一下以查看流中的内容的情况。 通常这通过调用一些一般的解析器来最容易地完成。 如果流是由解析器处理的类型,那么它就可以快乐地拥抱。 如果流不是那种类型,解析器应该在失败时抛出一个异常,如果它在readlimit字节中发生,则允许外部代码重置流并尝试另一个解析器。
reset在类别
FilterInputStream
IOException - 如果发生I / O错误。
FilterInputStream.in,
mark(int)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.