2013-03-15 57 views
1
import java.io.*; 

公共類BufferedReaders {有關的BufferedReader

public static void main(String args[]) { 
    try { 
     BufferedWriter bw = new BufferedWriter(new FileWriter("e:/test/exercise/BufferedWriter.txt")); 
     java.io.BufferedReader bd = new BufferedReader(new FileReader("e:/test/exercise/BufferedWriter.txt")); // The constructor BufferedReader(FileReader) is undefined.***Why?Thanks for your answers!!!*** 
     String s = null; 
     for (int i = 0; i < 10; i++) { 
     s = String.valueOf(Math.random()); 
     bw.write(s); 
     bw.newLine(); 
     } 
     bw.flush(); 
     while ((s = bd.readLine()) != null) { 
     System.out.print(s); 
     } 
     bw.close(); 
     bd.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    }       
} 

構造BufferedReader中的一些問題(的FileReader)是不確定的。但我只是在我的書中找到代碼並進行測試,我不知道爲什麼。感謝您的回答!

+0

謝謝你!雖然它是一樣的,它在你的PC上運行良好,也許與我的電腦錯了。我會運行它並resovle它。謝謝! – Koala 2013-03-15 03:28:53

回答

0

不,這段代碼沒問題。 BufferedReader需要Reader,其中FileReader是1 - 它從InputStreamReader下降,其從Reader下降。

我鍵入代碼到Eclipse和它優良運行:

java.io.FileNotFoundException: e:/test/exercise/BufferedWriter.txt (No such file or directory) 
    at java.io.FileOutputStream.open(Native Method) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:209) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:99) 
    at java.io.FileWriter.<init>(FileWriter.java:63) 
    at Test.main(Test.java:6) 

好,比實際上它無法打開文件(特別是因爲沒有e:驅動器在我的Debian框),但是這不是其他一個語法錯誤。

所以你有一個不同的問題。這是可能的,如果這不是整個代碼,你有另一BufferedReader類型與Java一個(但不太可能或邪惡的)干擾 - 你可以測試使用完全限定類型new之後還有:

java.io.BufferedReader bd = new java.io.BufferedReader ... 
0

我將您的代碼複製到Eclipse中,並編寫一些導入語句,並且它可以工作。

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 

public class BufferedReaders {  
public static void main(String args[]) { 
    try { 
     BufferedWriter bw = new BufferedWriter(new FileWriter("e:/test/exercise/BufferedWriter.txt")); 
     java.io.BufferedReader bd = new BufferedReader(new FileReader("e:/test/exercise/BufferedWriter.txt")); 
     String s = null; 
     for (int i = 0; i < 10; i++) { 
     s = String.valueOf(Math.random()); 
     bw.write(s); 
     bw.newLine(); 
     } 
     bw.flush(); 
     while ((s = bd.readLine()) != null) { 
     System.out.print(s); 
     } 
     bw.close(); 
     bd.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
}       
} 
+0

你能提供一些背景給你的答案,這樣未來的讀者可以學習如何將它應用於他們的問題,而不僅僅是在這種情況下。我還強烈建議通過http://stackoverflow.com/help/how-to-answer閱讀,使用該鏈接作爲參考可以極大地幫助您的答案的可見性和清晰度。 – Newd 2015-06-10 18:39:09