2

这是我对使用BufferedReaderjava 读取文件的理解。如果我在某个地方错了,请纠正我...

最近我有一个要求,我们需要多次读取一个文件。

我使用的常用方法是设置 amark()并进行重置。但是标记的输入参数是整数,它不能接受长数字。有没有一种方法可以让我们多次读取文件。

在 c++ 中,我们可以再次对fstreamread内容进行搜索,而不管我们想要这样做的次数。java中有没有这种性质的东西。

4

2 回答 2

3

只需关闭文件并再次阅读即可。

但请查看您的要求。为什么不能一次性处理?

于 2013-05-29T11:22:32.350 回答
1

不是一个很好的答案,但如果你想进行随机读写,那么你可以Channelsjava.nio包中使用。

BufferedReader用于在逻辑上将文件视为一系列记录时读取文件,并且记录通常是按顺序访问的。
Channels 允许您将文件视为一系列块。块是随机读取的。:)

使用通道的子类FileChannel,您可以从任何地方读取您想要的内容。您需要指定两件事:

  1. 从哪里读。
  2. 读多少。

它有一个read(dst,pstn)wheredst是 aByteBuffer而 pstn 是一个long位置。

不要担心这是abstract因为你使用它来Files.newByteChannel()完成所有需要让它工作的巫术:)

于 2013-05-29T11:08:17.527 回答