import java.io.*;
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")); // 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 :(得分:0)
不,那段代码很好。 BufferedReader
需要Reader
,其中FileReader
是一个 - 它来自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)
好吧,除了它无法打开文件的事实(特别是因为我的Debian盒子上没有e:
驱动器),但这不是语法错误。
所以你有一个不同的问题。如果那不是整个代码,那么你可能有另一个BufferedReader
类型干扰Java(但不太可能或者是邪恶的) - 你可以在new
之后使用完全限定类型来测试它。好:
java.io.BufferedReader bd = new java.io.BufferedReader ...
答案 1 :(得分:0)
我将您的代码复制到Eclipse中并编写一些import语句,并且它可以正常工作。
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();
}
}
}