java.io

接口
异常
错误
java.lang.Object
  继承者 java.io.Reader
      继承者 java.io.BufferedReader
          继承者 java.io.LineNumberReader
所有已实现的接口:
Closeable, Readable

public class LineNumberReader
     
extends BufferedReader

跟踪行号的缓冲字符输入流。此类定义了方法 setLineNumber(int)getLineNumber(),它们可分别用于设置和获取当前行号。

默认情况下,行编号从 0 开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用 setLineNumber(int) 更改行号。但要注意的是,setLineNumber(int) 不会实际更改流中的当前位置;它只更改将由 getLineNumber() 返回的值。

可认为行在遇到以下符号之一时结束:换行符('\n')、回车符('\r')、回车后紧跟换行符。

从以下版本开始:
JDK1.1

字段摘要
 
从类 java.io.Reader 继承的字段
lock
 
构造方法摘要
LineNumberReader(Reader in)
          使用默认输入缓冲区的大小创建新的行编号 reader。
LineNumberReader(Reader in, int sz)
          创建新的行编号 reader,将字符读入给定大小的缓冲区。
 
方法摘要
 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, markSupported, ready
 
从类 java.io.Reader 继承的方法
read, read
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

LineNumberReader

public LineNumberReader(Reader in)
使用默认输入缓冲区的大小创建新的行编号 reader。

参数:
in - 提供底层流的 Reader 对象

LineNumberReader

public LineNumberReader(Reader in,
                        int sz)
创建新的行编号 reader,将字符读入给定大小的缓冲区。

参数:
in - 提供底层流的 Reader 对象
sz - 指定缓冲区大小的 int 值
方法详细信息

setLineNumber

public void setLineNumber(int lineNumber)
设置当前行号。

参数:
lineNumber - 指定行号的 int 值
另请参见:
getLineNumber()

getLineNumber

public int getLineNumber()
获得当前行号。

返回:
当前行号
另请参见:
setLineNumber(int)

read

public int read()
         throws IOException
读取单个字符。 行结束符被压缩为一个换行('\n')字符。无论何时读取行结束符,当前行号将加 1。

覆盖:
BufferedReader 中的 read
返回:
读取的字符;如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

read

public int read(char[] cbuf,
                int off,
                int len)
         throws IOException
将字符读入数组中的某一部分。无论何时读取行结束符,当前行号都将加 1。

覆盖:
BufferedReader 中的 read
参数:
cbuf - 目标缓冲区
off - 开始存储字符处的偏移量
len - 要读取的最多字符数
返回:
读取的字节数量,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

readLine

public String readLine()
                throws IOException
读取文本行。无论何时读取行结束符,当前行号都将加 1。

覆盖:
BufferedReader 中的 readLine
返回:
包含行内容的字符串,不包括任何 行结束符;如果已到达流的末尾,则返回 null
抛出:
IOException - 如果发生 I/O 错误

skip

public long skip(long n)
          throws IOException
跳过字符。

覆盖:
BufferedReader 中的 skip
参数:
n - 要跳过的字符数
返回:
实际跳过的字符数
抛出:
IOException - 如果发生 I/O 错误
IllegalArgumentException - 如果 n 为负

mark

public void mark(int readAheadLimit)
          throws IOException
标记该流中的当前位置。对 reset() 的后续调用会尝试重新将流定位到此点,还将相应地重新设置行号。

覆盖:
BufferedReader 中的 mark
参数:
readAheadLimit - 在仍保留该标记的情况下,对可读取字符数量的限制。在读取这样多的字符后,尝试重置流可能会失败。
抛出:
IOException - 如果发生 I/O 错误

reset

public void reset()
           throws IOException
将该流重新设置为最新的标记。

覆盖:
BufferedReader 中的 reset
抛出:
IOException - 如果该流未被标记,或者该标记已失效