Java.io.LineNumberReader.mark() 方法
描述
java.io.LineNumberReader.mark(int readAheadLimit) 方法标记流中的当前位置。 对 reset() 的后续调用将尝试将流重新定位到该点,并且还将大致重置行号。
声明
以下是 java.io.LineNumberReader.mark(int readAheadLimit) 方法的声明 −
public void mark(int readAheadLimit)
参数
readAheadLimit − 在保留标记的同时限制可以读取的字符数。
返回值
该方法不返回任何值。
异常
IOException − 如果发生 I/O 错误。
示例
下面的例子展示了 java.io.LineNumberReader.mark(int readAheadLimit) 方法的使用。
package com.tutorialspoint;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class LineNumberReaderDemo {
public static void main(String[] args) throws IOException {
FileReader fr = null;
LineNumberReader lnr = null;
int i;
try {
// create new reader
fr = new FileReader("C:/test.txt");
lnr = new LineNumberReader(fr);
// reads and prints data from reader
System.out.println((char)lnr.read());
System.out.println((char)lnr.read());
// mark invoked at this position
lnr.mark(0);
System.out.println("mark() invoked");
System.out.println((char)lnr.read());
System.out.println((char)lnr.read());
// if this reader supports mark() an reset()
if(lnr.markSupported()) {
// reset() repositioned the reader to the mark
lnr.reset();
System.out.println("reset() invoked");
System.out.println((char)lnr.read());
System.out.println((char)lnr.read());
}
} catch(Exception e) {
// if any error occurs
e.printStackTrace();
} finally {
// closes the stream and releases system resources
if(fr!=null)
fr.close();
if(lnr!=null)
lnr.close();
}
}
}
假设我们有一个文本文件c:/test.txt,其内容如下。 该文件将用作我们示例程序的输入 −
ABCDE
让我们编译并运行上面的程序,这将产生下面的结果 −
A B mark() invoked C D reset() invoked C D

