这是我对使用BufferedReader
java 读取文件的理解。如果我在某个地方错了,请纠正我...
最近我有一个要求,我们需要多次读取一个文件。
我使用的常用方法是设置 amark()
并进行重置。但是标记的输入参数是整数,它不能接受长数字。有没有一种方法可以让我们多次读取文件。
在 c++ 中,我们可以再次对fstream
和read
内容进行搜索,而不管我们想要这样做的次数。java中有没有这种性质的东西。
只需关闭文件并再次阅读即可。
但请查看您的要求。为什么不能一次性处理?
不是一个很好的答案,但如果你想进行随机读写,那么你可以Channels
在java.nio
包中使用。
BufferedReader
用于在逻辑上将文件视为一系列记录时读取文件,并且记录通常是按顺序访问的。
Channel
s 允许您将文件视为一系列块。块是随机读取的。:)
使用通道的子类FileChannel
,您可以从任何地方读取您想要的内容。您需要指定两件事:
它有一个read(dst,pstn)
wheredst
是 aByteBuffer
而 pstn 是一个long
位置。
不要担心这是abstract
因为你使用它来Files.newByteChannel()
完成所有需要让它工作的巫术:)