当前位置: 首页 > 知识库问答 >
问题:

无法使用FileReader和BufferedReader读取Java中的文本文件

袁河
2023-03-14

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

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

请建议

共有2个答案

张溪叠
2023-03-14

您可能正在导入java以外的内容。伊奥。BufferedReader和java。伊奥。读者

这个管用

package com.company;

import java.io.*;

public class Main {
        public static void main(String[] args) throws Exception {
            Reader fr = new FileReader("testfile.txt");
            BufferedReader br =  new BufferedReader(fr);
        }
}

请检查您的进口;

田慈
2023-03-14

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

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

这将确保您使用特定的类,而不是包。文件阅读器类。

然后,由于只有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.进口申报

§6.3和§6.4规定了通过这些声明导入的类型或成员的范围和阴影。

6.4.1. 阴影

包声明不会影响任何其他声明。

程序包p的编译单元c中的单个类型导入声明d,它导入名为n的类型,在整个c中,包含以下声明:

  • 在p的另一个编译单元中声明的名为n的任何顶级类型
A
A.Run
A.Test
B
B.Test

在A. R.un.java

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

以下是输出:

  • 无需进口:A包
 类似资料:
  • 我对java比较陌生,对如何使用缓冲读取器读取文件很好奇。这是因为我正在上一门课,被分配做一个简单的ceaser密码,我应该解密一个文本文件,创建一个新文件,并将解密的文本放入该文件。我可以用扫描仪和一个10KB的小文件来完成,但是当我要测试的100MB的大文本文件的时候,它是非常慢的。这是我的代码,它应该是读取文件内容。 如果有人能给我指明正确的方向,那就太好了。 提前致谢

  • 我使用以下两段代码来读取一个大文件。 这使用: 对我错过的东西的想法?即使使用了'read()'方法,BufferedReader也应该比从FileReader读取更好的性能吗?

  • 问题内容: 我在使用BufferedReader时遇到问题 我想打印一个文本文件的6行: 现在,从每次调用readLine()方法可以收集到的信息开始,它都会自动前进到下一行。 所以我不能使用条件br.readLine()!= null,因为它已经将其前进了一行,并且我得到了输出: 我使用什么条件来检查文本字段中是否还有新行。 提前致谢! 问题答案: 这就是问题: 您有两次调用-第一个 仅 检查是

  • 我想打印一个文本文件的6行: 现在,根据我每次调用readLine()方法时所收集到的信息,它会自动前进到下一行。 所以我不能使用条件br.readline()!=null,因为它已经提前了一行,我得到的输出是: 我使用什么条件来检查文本字段中是否还有新行。 提前道谢!

  • 由来 在FileUtil中本来已经针对文件的读操作做了大量的静态封装,但是根据职责分离原则,我觉得有必要针对文件读取单独封装一个类,这样项目更加清晰。当然,使用FileUtil操作文件是最方便的。 使用 在JDK中,同样有一个FileReader类,但是并不如想象中的那样好用,于是Hutool便提供了更加便捷FileReader类。 //默认UTF-8编码,可以在构造中传入第二个参数做为编码 Fi

  • 我有一个名为“add”的方法,它将字符串作为参数,并使用bufferedwriter将其写入文件。完成此操作后,bufferedwriter将被刷新。 在另一个方法“read”中,我遍历文件中的行,但这些行是空的(因此我不能打印它们)。