扫描仪构造函数导致缓冲读取器返回null。

5

我正在尝试做的事情是 -

BufferedReader br = new BuffereReader(file);
Scanner s = new Scanner(br);
sys.out(s.next());
sys.out(buffReader.readLine());

我希望现在有两个不同位置的读取器对该文件进行读取。然而,buffReader在readLine时返回null,而scanner似乎工作正常。我是否可以像我想要的那样拥有两个读取器?


3
使用Java无法实现那件事情。 - Bhavik Ambani
1个回答

2
我希望发生的是现在有两个指向文件不同位置的读取器。
您的期望是错误的。首先,两者都连接到相同的基础文件,该文件只有一个当前位置。其次,扫描仪包装在缓冲读取器周围,因此由扫描仪引起的任何位置更改都是通过缓冲读取器进行的。

我不确定Scanner发生的任何事情是否通过BufferedReader发生。难道Scanner不能创建BufferedReader资源的副本,以便拥有自己的资源吗? - David says Reinstate Monica
@Dgrin91 我刚回答了那个问题。再问一遍也不会改变答案。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接