这是我在java中使用BufferedReader
读取文件的理解。如果我错了,请纠正我......
最近我有一个要求,我们需要多次读取文件。
我使用的常用方法是设置mark()
并进行重置。但输入参数为
标记是整数,不能接受长数。有没有一种方法可以让我们多次读取文件。
在c ++中,无论我们想要多少次,我们都可以再次对fstream
和read
内容进行搜索。 java中有什么东西是这种性质的。
答案 0 :(得分:3)
关闭文件并再次阅读。
但请查看您的要求。你为什么不能一次性处理它?</ p>
答案 1 :(得分:1)
不是很好的答案,但如果你想随机阅读和写作,那么你可以在Channels
包中使用java.nio
。
BufferedReader
用于在逻辑上将其视为一系列记录时读取文件,并且通常按顺序访问记录。
Channel
允许您将文件视为一系列块。块意味着随机读取。 :)
使用频道的子类FileChannel
,您可以在任何地方阅读您想要的内容。您需要指定两件事:
它有read(dst,pstn)
,其中dst
是ByteBuffer
,pstn是long
位置。
不要担心它是abstract
,因为你是通过Files.newByteChannel()
使用它来完成所需的所有伏都教:)