Java BufferedReader 返回文本文件的顶部?

2023-12-20

我目前有 2BufferedReaders 在同一文本文件上初始化。当我读完第一个文本文件后BufferedReader,我使用第二个从顶部再次遍历文件。需要多次遍历同一文件。

我知道关于reset(),但需要先调用mark() and mark()需要知道文件的大小,我认为我不应该为此烦恼。

有想法吗?包裹?库?代码?

谢谢 泰杰


缓冲读取器旨在顺序读取文件。您正在寻找的是java.io.RandomAccessFile http://docs.oracle.com/javase/8/docs/api/java/io/RandomAccessFile.html,然后你可以使用seek()将您带到文件中您想要的位置。

随机访问读取器的实现如下:

try{
     String fileName = "c:/myraffile.txt";
     File file = new File(fileName);
     RandomAccessFile raf = new RandomAccessFile(file, "rw");
     raf.readChar();
     raf.seek(0);
} catch (FileNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
} catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
}

The "rw"是一个模式字符,它是详细信息在这里 http://docs.oracle.com/javase/8/docs/api/java/io/RandomAccessFile.html#RandomAccessFile-java.io.File-java.lang.String-.

顺序存取读取器之所以如此设置,是因为它们可以实现其缓冲区,并且无法在其脚下进行更改。例如,提供给缓冲读取器的文件读取器只能由该缓冲读取器操作。如果存在可能影响它的另一个位置,则可能会出现不一致的操作,因为一个读取器在文件读取器中前进了其位置,而另一个读取器希望它保持不变,现在您使用另一个读取器并且它位于未确定的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java BufferedReader 返回文本文件的顶部? 的相关文章

随机推荐