- java.lang.Object
-
- java.io.Reader
-
- java.io.BufferedReader
-
- java.io.LineNumberReader
-
- All Implemented Interfaces:
-
Closeable
,AutoCloseable
,Readable
public class LineNumberReader extends BufferedReader
缓冲字符输入流,跟踪行号。 该类定义用于分别设置和获得当前行号的方法setLineNumber(int)
和getLineNumber()
。默认情况下,行编号从0开始。读取数据时,该数字将每line terminator递增一次,可通过调用
setLineNumber(int)
进行更改。 但是请注意,setLineNumber(int)
实际上并不改变流中的当前位置; 它只会更改getLineNumber()
返回的getLineNumber()
。换行符('\ n'),回车符('\ r')中的任一行或随后的换行符都被视为terminated 。
- 从以下版本开始:
- 1.1
-
-
构造方法摘要
构造方法 Constructor 描述 LineNumberReader(Reader in)
使用默认的输入缓冲区大小创建一个新的行号阅读器。LineNumberReader(Reader in, int sz)
创建一个新的行号阅读器,将字符读入给定大小的缓冲区。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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)
跳过字符-
Methods inherited from class java.io.BufferedReader
close, lines, markSupported, ready
-
-
-
-
方法详细信息
-
setLineNumber
public void setLineNumber(int lineNumber)
设置当前行号。- 参数
-
lineNumber
- 指定行号的int - 另请参见:
-
getLineNumber()
-
getLineNumber
public int getLineNumber()
获取当前行号。- 结果
- 当前行号
- 另请参见:
-
setLineNumber(int)
-
read
public int read() throws IOException
- 重写:
-
read
在BufferedReader
- 结果
- 字符读取,如果已经达到流的结尾,则为-1
- 异常
-
IOException
- 如果发生I / O错误
-
read
public int read(char[] cbuf, int off, int len) throws IOException
将字符读入数组的一部分。 每当读取line terminator时 ,当前行号增加。- 重写:
-
read
在BufferedReader
- 参数
-
cbuf
- 目的缓冲区 -
off
- 开始存储字符的偏移量 -
len
- 要读取的最大字符数 - 结果
- 读取的字节数,如果已经达到流的结尾,则为-1
- 异常
-
IOException
- 如果发生I / O错误 -
IndexOutOfBoundsException
- 如果发生I / O错误
-
readLine
public String readLine() throws IOException
读一行文字。 每当读取line terminator时 ,当前行号增加。- 重写:
-
readLine
在类BufferedReader
- 结果
-
包含该行内容的字符串,不包括任何
line termination characters或
null
如果已经达到流的末尾) - 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
Files.readAllLines(java.nio.file.Path, java.nio.charset.Charset)
-
skip
public long skip(long n) throws IOException
跳过字符- 重写:
-
skip
在BufferedReader
- 参数
-
n
- 要跳过的字符数 - 结果
- 实际跳过的字符数
- 异常
-
IOException
- 如果发生I / O错误 -
IllegalArgumentException
- 如果n
为负数
-
mark
public void mark(int readAheadLimit) throws IOException
标记流中的当前位置。 对reset()的后续调用将尝试将流重新定位到这一点,并且还将适当地重置行号。- 重写:
-
mark
在BufferedReader
- 参数
-
readAheadLimit
- 限制仍然保留标记时可能读取的字符数。 读了这么多字符后,尝试重置流可能会失败。 - 异常
-
IOException
- 如果发生I / O错误
-
reset
public void reset() throws IOException
将流重新设置为最近的标记。- 重写:
-
reset
在BufferedReader
- 异常
-
IOException
- 如果流未被标记,或标记已被无效
-
-