【问题标题】:How to fix BufferReader issue in java [duplicate]如何修复 Java 中的 BufferReader 问题 [重复]
【发布时间】:2015-07-22 18:26:30
【问题描述】:

自从我学习 Java 以来已经有一段时间了,所以我正在看一本书。据我所见,以下代码是正确的,但是我无法编译它。我以前用Scanner,但是这本书就是采用这种方法,我更愿意按照它的说明做练习,有人能看出这里有什么问题吗?

import java.io.*;

class ReadFile
{
public static void main( String[] args )
{

  try
  {
    FileReader file = new FileReader("Sheffield.data");
  }

  catch (IOException e)
  {
    System.out.println("A read error has ocurred" );
  }

  BufferedReader buffer = new BufferedReader(file);
  String line = "";

  while ((line = buffer.readLine()) != null)
  {
    System.out.println(line);
  }
  buffer.close();

}
}

我在 Windows cmd 中遇到的错误如下:

我知道的简单错误,任何帮助将不胜感激。

已修复!!

  BufferedReader buffer = new BufferedReader(file);
  String line = "";

  while ((line = buffer.readLine()) != null)
  {
    System.out.println(line);
  }
  buffer.close();

以上都应该放在FileReader file = new FileReader("Sheffield.data");下的try语句中

【问题讨论】:

  • 可变范围。 file 名称只能在 try 块内使用。
  • 这个问题已经更新并回答了我猜这就是问题所在。这本书指出在try 之外执行BufferReader 语句,但是后一个代码块需要移到里面。感谢您的帮助

标签: java io bufferedreader


【解决方案1】:

file 变量是在 try 块中创建的,因此 BufferedReader buffer = new BufferedReader(file); 无权访问它。在 try 之前创建引用并在 try 块中实例化。

【讨论】:

  • 是的,这正是我所想的,但这本书就是这么说的,Mike McGrath - Java in Easy Steps 第 4 版。
猜你喜欢
  • 2019-08-27
  • 2018-03-14
  • 1970-01-01
  • 2020-05-06
  • 2021-02-20
  • 1970-01-01
  • 2017-01-27
  • 2021-11-11
  • 2019-11-29
相关资源
最近更新 更多