LineNumberReader
java.lang.Object
|—java.io.Reader
|—|—java.io.BufferedReader
|—|—|—java.io.LineNumberReader
public class LineNumberReader
extends BufferedReader
跟踪行号的缓冲字符输入流。 该类定义了 setLineNumber(int) 和 getLineNumber() 方法,分别用于设置和获取当前行号。
默认情况下,行号从 0 开始。随着数据的读取,该数字在每个行终止符处递增,并且可以通过调用 setLineNumber(int) 来更改。 但是请注意, setLineNumber(int) 实际上并没有改变流中的当前位置; 它只会更改 getLineNumber() 将返回的值。
一行被认为是由换行符 (‘\n’)、回车符 (‘\r’) 或紧跟换行符的回车符中的任何一个终止的。
Since:
JDK1.1
字段摘要
从类 java.io.Reader 继承的字段 |
---|
lock |
构造函数摘要
构造函数 | 描述 |
---|---|
LineNumberReader(Reader in) | 使用默认输入缓冲区大小创建一个新的行号阅读器。 |
LineNumberReader(Reader in, int sz) | 创建一个新的行号阅读器,将字符读入给定大小的缓冲区。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
int | getLineNumber() | 获取当前行号。 |
void | mark(int readAheadLimit) | 标记流中的当前位置。 |
int | read() | 读取单个字符。 |
int | read(char[] cbuf, int off, int len) | 将字符读入数组的一部分。 |
String | readLine() | 阅读一行文字。 |
void | reset() | 将流重置为最新标记。 |
void | setLineNumber(int lineNumber) | 设置当前行号。 |
long | skip(long n) | 跳过字符。 |
从类 java.io.BufferedReader 继承的方法 |
---|
close, lines, markSupported, ready |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从类 java.io.Reader 继承的方法 |
---|
read, read |
构造函数详细信息
LineNumberReader
public LineNumberReader(Reader in)
使用默认输入缓冲区大小创建一个新的行号阅读器。
参数:
参数名称 | 参数描述 |
---|---|
in | 提供底层流的 Reader 对象 |
LineNumberReader
public LineNumberReader(Reader in, int sz)
创建一个新的行号阅读器,将字符读入给定大小的缓冲区。
参数:
参数名称 | 参数描述 |
---|---|
in | 提供底层流的 Reader 对象 |
sz | 指定缓冲区大小的 int |
方法详情
setLineNumber
public void setLineNumber(int lineNumber)
设置当前行号。
参数:
参数名称 | 参数描述 |
---|---|
lineNumber | 指定行号的 int |
getLineNumber
public int getLineNumber()
获取当前行号。
返回:
当前行号
read
public int read() throws IOException
读取单个字符。 行终止符被压缩为单个换行符 (‘\n’) 字符。 每当读取行终止符时,当前行号都会增加。
覆盖:
在类 BufferedReader 中读取
返回:
读取的字符,如果已到达流的末尾,则为 -1
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
read
public int read(char[] cbuf, int off, int len) throws IOException
将字符读入数组的一部分。 每当读取行终止符时,当前行号都会增加。
覆盖:
在类 BufferedReader 中读取
参数:
参数名称 | 参数描述 |
---|---|
cbuf | 目标缓冲区 |
off | 开始存储字符的偏移量 |
len | 要读取的最大字符数 |
返回:
读取的字节数,如果已经到达流的末尾,则为 -1
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
readLine
public String readLine() throws IOException
阅读一行文字。 每当读取行终止符时,当前行号都会增加。
覆盖:
BufferedReader 类中的 readLine
返回:
包含行内容的字符串,不包括任何行终止字符,如果已到达流的末尾,则为 null
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
skip
public long skip(long n) throws IOException
跳过字符。
覆盖:
跳过 BufferedReader 类
参数:
参数名称 | 参数描述 |
---|---|
n | 要跳过的字符数 |
返回:
实际跳过的字符数
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
IllegalArgumentException | 如果 n 为负 |
mark
public void mark(int readAheadLimit) throws IOException
标记流中的当前位置。 对 reset() 的后续调用将尝试将流重新定位到该点,并且还将适当地重置行号。
覆盖:
BufferedReader 类中的标记
参数:
参数名称 | 参数描述 |
---|---|
readAheadLimit | 在保留标记的同时限制可以读取的字符数。 读取这么多字符后,尝试重置流可能会失败。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
reset
public void reset() throws IOException
将流重置为最新标记。
覆盖:
在类 BufferedReader 中重置
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果流尚未被标记,或者标记已失效 |