【问题标题】:Scanner constructor causes bufferedReader to return nullScanner 构造函数导致 bufferedReader 返回 null
【发布时间】:2012-12-03 10:35:53
【问题描述】:

我正在尝试做 -

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

我期望发生的是现在文件上有 2 个不同的阅读器指向不同的位置。但是,buffReader 在 readLine 上返回 null,而扫描仪似乎工作正常。我可以拥有 2 个我想要的读者吗?

【问题讨论】:

  • 你不能用 Java 实现那个东西。

标签: java constructor null java.util.scanner bufferedreader


【解决方案1】:

我期望发生的是现在文件上有 2 个不同的阅读器指向不同的位置。

您的期望是错误的。首先,两者都连接到同一个基础文件,该文件只有一个当前位置。其次,Scanner 被包裹在 BufferedReader 周围,因此由 Scanner 引起的任何位置变化都会发生 BufferedReader。

【讨论】:

  • 我不确定 Scanner 发生的任何事情是否通过 BufferedReader 发生。 Scanner 不能创建 BufferedReaders 资源的副本以便拥有自己的资源吗?
  • @Dgrin91 我刚刚回答了这个问题。再次询问不会改变答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
相关资源
最近更新 更多