java - 无法使用 FileReader 和 BufferedReader 在 Java 中读取文本文件

标签 java bufferedreader filereader

我想在 java8 中读取文本文件,但收到错误“类型不匹配:无法从 FileReader 转换为 Reader”。如果我将 Reader 类更改为 FileReader ,则会收到错误“构造函数 BufferedReader(FileReader) 未定义” 我的发言是

Reader fr = new FileReader("testfile.txt");
BufferedReader br =  new BufferedReader(fr);

请提出建议

最佳答案

要确认您有一个名为 FileReader 的类,只需在代码中使用完整的类名即可:

java.io.Reader fr = new java.io.FileReader("testfile.txt");
java.io.BufferedReader br =  new java.io.BufferedReader(fr);

这将确保您使用特定的类,而不是 yourPackage.FileReader 类。

然后,由于只有 FileReader 似乎有问题,您可以像这样清理它:

import java.io.*

...

Reader fr = new java.io.FileReader("testfile.txt");
BufferedReader br =  new BufferedReader(fr);

仅指定 FileReader 全名。

注意:

使用 Class.GetPackage ,您应该找出您正在使用哪个类。

System.out.println(FileReader.class.getPackage());

说明:

JLS - 7.5. Import Declarations

The scope and shadowing of a type or member imported by these declarations is specified in §6.3 and §6.4.

6.4.1. Shadowing

A package declaration never shadows any other declaration.

A single-type-import declaration d in a compilation unit c of package p that imports a type named n shadows, throughout c, the declarations of:

  • any top level type named n declared in another compilation unit of p
  • any type named n imported by a type-import-on-demand declaration in c
  • any type named n imported by a static-import-on-demand declaration in c

示例

A
A.Run
A.Test
B
B.Test

在A.Run.java中

System.out.println(Test.class.getPackage());

这是输出:

  • 不导入:包 A
  • 不导入导入B.*:包A
  • 不导入导入B.Test:包B

关于java - 无法使用 FileReader 和 BufferedReader 在 Java 中读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47589148/

相关文章:

java - 使用 bufferReader 将文本拆分为单词

javascript - React DropzoneComponent 在上传之前在本地打开/修改文件

javascript - 在 Chrome 中加载文件时,FileReader readyState 停留在 1

java - 读取巨大的 txt 文件时超出 GC 开销限制

javascript - 为什么这个 FileReader onload 没有触发?

java - 在 Java swing 中重用相同的 JPanel

java - 在 VS Code 中导出 jar 文件

隐藏公共(public)访问器的 Java 私有(private)方法

java: 为什么当-Xms 和-Xmx 不相等时调用full GC?

java - 使用 BufferedReader 和 FileReader 从文件中读取