【问题标题】:Properly reading files with FileReader and BufferedReader in Java在 Java 中使用 FileReader 和 BufferedReader 正确读取文件
【发布时间】:2014-05-09 14:46:02
【问题描述】:

我正在尝试学习如何在 Java 中使用 FileReader 来读取文件,但是我遇到了持续性错误。我正在使用 Eclipse,我收到一个红色错误,表明构造函数 FileReader(File) 是 未定义且构造函数 BufferedReader(FileReader) 未定义;但是,我不知道这个错误来自哪里,因为我使用了正确的库和语句。

我收到以下错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The constructor FileReader(File) is undefined
    The constructor BufferedReader(FileReader) is undefined
    at FileReader.main(FileReader.java:17)

我的代码如下:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class FileReader {

    public static void main(String[] args) {

        File file = new File("example.txt");

        BufferedReader br = null;

        try {
            FileReader fr = new FileReader(file);
            br = new BufferedReader(fr);

            String line;

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

        } catch (FileNotFoundException e) {
            System.out.println("File not found: " + file.toString());
        } catch (IOException e) {
            System.out.println("Unable to read file: " + file.toString());
        }
        finally {
            try {
                br.close();
            } catch (IOException e) {
                System.out.println("Unable to close file: " + file.toString());
            }
            catch(NullPointerException ex) {
            }
        }



    }

}

对于额外的上下文(对不起大小,但我相信你可以放大。你可以看到红色错误在哪里,在该行的左侧):

【问题讨论】:

    标签: java file bufferedreader


    【解决方案1】:

    尝试关注

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    
    public class FileReader {
    
        public static void main(String[] args) {
    
            File file = new File("example.txt");
    
            BufferedReader br = null;
    
            try {
                java.io.FileReader fr = new java.io.FileReader(file);
                br = new BufferedReader(fr);
    
                String line;
    
                while( (line = br.readLine()) != null ) {
                    System.out.println(line);
                }
    
            } catch (FileNotFoundException e) {
                System.out.println("File not found: " + file.toString());
            } catch (IOException e) {
                System.out.println("Unable to read file: " + file.toString());
            }
            finally {
                try {
                    br.close();
                } catch (IOException e) {
                    System.out.println("Unable to close file: " + file.toString());
                }
                catch(NullPointerException ex) {
                }
            }
    
    
    
        }
    
    }
    

    实际上你的班级FileReader 隐藏了java.io.FileReader。以上应该现在可以工作了

    【讨论】:

      【解决方案2】:

      问题是您将自己的类命名为FileReader,它与您要使用的java.io.FileReader 冲突。这就是导入下方的红线告诉您的内容:导入将不起作用,因为您有一个具有相同名称的不同类遮蔽了导入。更改您的班级名称。

      【讨论】:

      • FileReader 不应该是我们处理文件读取操作时的类名。
      猜你喜欢
      • 2018-08-04
      • 2017-12-01
      • 2018-05-15
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多