2012-04-25 30 views
1

第一次在這裏發佈。「類filereader.FileReader中的構造函數FileReader不能應用於給定類型」

我正在編寫一個Java程序,該程序需要輸入文本文件,讀取內容,然後將它們打印到屏幕上,並創建一個帶有內容的輸出文件。我已經成立了必要的作家,但是當我嘗試使用BufferedReader readername = new BufferedReader(new FileReader(inFile));時,它給了我標題中的錯誤。

任何想法是什麼造成的?

這是代碼。

public class FileReader 
{ 
    public static void main(String[] args) throws IOException 
    { 
     try 
     { 
     File inFile = new File("inputText.txt"); 
     BufferedReader reader = new BufferedReader(new FileReader(inFile)); 
     String line = null; 
     BufferedWriter writer = new BufferedWriter(new FileWriter("Contents.txt")); 

     while ((line=reader.readLine()) != null) 
        { 
         writer.write(line); 
         System.out.println("File 'Contents.txt' successfully written"); 
         System.out.println(line); 
        } 
     } 
     catch (IOException e) 
     { 
      System.out.println(e); 
     } 
    } 
} 

回答

5

因爲你必須調用BufferedReader當一個類已經叫FileReader,像這樣使用完全合格的類名java.io.FileReader

BufferedReader reader = new BufferedReader(new java.io.FileReader(inFile)); 

沒有完全限定的FileReader(或指定進口),編譯將使用您聲明的FileReader

+0

謝謝!這解決了這個問題。 – 2012-04-25 16:18:42

+0

@伊恩約翰遜,很高興有幫助。不要忘記接受通過點擊答案分數下的勾號得到的答案。 – 2012-04-25 16:20:50

+0

另一個問題是,當我試圖關閉讀寫器時,它說它找不到符號,即使我已經聲明瞭它。 – 2012-04-25 16:35:54

0

這裏的問題是,你的類名是FileReader,你想使用java.io.FileReader因此編譯器很困惑,而不是java.io.FileReader它認爲它是你的類。基本上你的ClassName會從java.io包中隱藏名字。

重命名你的類別的像MyFileReader或使用完全合格的命名java.io.FileReader

相關問題