2014-03-30 53 views
2

我想学习如何在Java中使用FileReader读取文件,但是我得到持久性错误。我正在使用Eclipse,并且我得到一个红色错误,指出构造函数FileReader(File)未定义为 ,构造函数BufferedReader(FileReader)未定义;然而,我不知道这个错误来自哪里,因为我正在使用正确的库和声明。用Java中的FileReader和BufferedReader正确读取文件

我收到以下错误:

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) { 
      } 
     } 



    } 

} 

对于额外的上下文(很抱歉的大小,但我相信你可以放大你可以看到在哪里红色错误在该行的左侧): enter image description here

回答

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。上面应该现在工作

6

问题是,你命名你自己的类FileReader,它与你想要使用的java.io.FileReader相冲突。这就是导入之下的红线告诉你的:导入不起作用,因为你有一个与导入相同的名称不同的类。改变你班级的名字。

+0

当我们处理文件读取操作时,FileReader不应该是类名。 – Manish

相关问题