java.lang.Object
java.io.Reader
java.io.BufferedReader
java.io.LineNumberReader
- 所有已实现的接口:
-
Closeable
,AutoCloseable
,Readable
一个缓冲字符输入流,可以跟踪行号。该类定义了用于设置和获取当前行号的方法
setLineNumber(int)
和getLineNumber()
。
默认情况下,行号从0开始。每次读取数据时,该数字在每个行终止符处递增,并且在流的末尾(如果流中的最后一个字符不是行终止符)时也会递增。可以通过调用setLineNumber(int)
来更改此数字。但请注意,setLineNumber(int)
实际上不会更改流中的当前位置;它只会更改getLineNumber()
将返回的值。
一行被任何一个换行符('\n')、回车符('\r')或紧接着回车符后面的换行符终止,或者之前的终止符后面跟着流的结尾,或者流的结尾不是另一个终止符而是终止。
- 自版本:
- 1.1
-
Field Summary
-
Constructor Summary
ConstructorDescription使用默认输入缓冲区大小创建一个新的行号读取器。LineNumberReader
(Reader in, int sz) 使用给定大小的缓冲区创建一个新的行号读取器。 -
Method Summary
Methods declared in class java.io.BufferedReader
close, lines, markSupported, ready
Methods declared in class java.io.Reader
nullReader, read, read, skip, transferTo
-
Constructor Details
-
LineNumberReader
使用默认输入缓冲区大小创建一个新的行号读取器。- 参数:
-
in
- 提供基础流的Reader对象
-
LineNumberReader
使用给定大小的缓冲区创建一个新的行号读取器。- 参数:
-
in
- 提供基础流的Reader对象 -
sz
- 指定缓冲区的大小的int
-
-
Method Details
-
setLineNumber
public void setLineNumber(int lineNumber) 设置当前行号。- 参数:
-
lineNumber
- 指定行号的int - 参见:
-
getLineNumber
public int getLineNumber()获取当前行号。- 返回:
- 当前行号
- 参见:
-
read
读取单个字符。将行终止符压缩为单个换行符('\n')。每当读取到行终止符时,或者当到达流的末尾且流中的最后一个字符不是行终止符时,当前行号都会递增。- 覆盖:
-
read
在类中BufferedReader
- 返回:
- 读取的字符,如果已到达流的末尾则为-1
- 抛出:
-
IOException
- 如果发生I/O错误
-
read
将字符读入数组的一部分。此方法将阻塞,直到有输入可用,发生I/O错误,或者到达流的末尾。如果
len
为零,则不会读取任何字符,并返回0
;否则,将尝试读取至少一个字符。如果没有字符可用,因为流已经结束,则返回值为-1
;否则,至少读取一个字符并存储到cbuf
中。行终止符被压缩为单个换行符('\n')。每当读取到行终止符时,或者当到达流的末尾且流中的最后一个字符不是行终止符时,当前行号都会递增。
- 覆盖:
-
read
在类中BufferedReader
- 参数:
-
cbuf
- 目标缓冲区 -
off
- 开始存储字符的偏移量 -
len
- 要读取的最大字符数 - 返回:
- 读取的字符数,如果已到达流的末尾则为-1
- 抛出:
-
IndexOutOfBoundsException
- 如果off
为负数,或len
为负数,或len
大于cbuf.length - off
-
IOException
- 如果发生I/O错误
-
readLine
读取一行文本。将行终止符压缩为单个换行符('\n')。每当读取到行终止符时,或者当到达流的末尾且流中的最后一个字符不是行终止符时,当前行号都会递增。- 覆盖:
-
readLine
在类中BufferedReader
- 返回:
-
包含行内容的字符串,不包括任何行终止符,如果已到达流的末尾则为
null
- 抛出:
-
IOException
- 如果发生I/O错误 - 参见:
-
mark
标记流中的当前位置。随后调用reset()将尝试将流重新定位到此点,并适当重置行号。- 覆盖:
-
mark
在类中BufferedReader
- 参数:
-
readAheadLimit
- 可读取的字符数限制,保留标记。读取此数量的字符后,尝试重置流可能失败。 - 抛出:
-
IOException
- 如果发生I/O错误
-
reset
将流重置为最近的标记。- 覆盖:
-
reset
在类中BufferedReader
- 抛出:
-
IOException
- 如果流未被标记,或者标记已失效
-