1
 import java.io.*;

公共类 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) 未定义。但是我只是在我的书中找到了代码并进行了测试,我不知道为什么。感谢您的回答!

4

2 回答 2

0

不,那个代码很好。BufferedReader需要 a 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)

好吧,除了它无法打开文件(特别是因为e:我的 Debian 盒子上没有驱动器)之外,但这不是语法错误。

所以你有一个不同的问题。如果这不是整个代码,那么您可能有另一种BufferedReader类型干扰 Java 类型(无论多么不可能或邪恶) - 您也可以通过在之后使用完全限定类型来测试它new

java.io.BufferedReader bd = new java.io.BufferedReader ...
于 2013-03-15T02:19:06.960 回答
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();
    }
 }                          
}
于 2015-06-10T18:14:00.107 回答