Java使用BufferedReader与FileReader读取文件报错如何解决
报错原因
两个报错均由自定义类名和JDK标准类重名导致:
- 你将自己的公共类命名为
BufferedReader,和Java内置的java.io.BufferedReader类名冲突,且代码中没有导入标准库的BufferedReader类,编译器默认将你自定义的类作为BufferedReader类型使用 - 你自定义的
BufferedReader类没有定义接收FileReader参数的构造方法,也没有实现readLine方法,因此触发两处报错
解决方法
修改自定义类的名称,不要和JDK标准类重名,同时导入java.io.BufferedReader类即可。为了避免资源泄漏和空指针异常,推荐使用try-with-resources语法自动管理IO流,修正后代码如下:
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; // 修改类名,避免和标准类冲突 public class FileReadDemo { public static void main(String[] args) { File file = new File("fileExample.txt"); // try-with-resources会自动关闭流,无需手动处理 try (BufferedReader reader = new BufferedReader(new FileReader(file))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
内容的提问来源于stack exchange,提问作者Wais Shuja
相关产品推荐
相关产品推荐

