【问题标题】:Some issue about BufferedReader关于 BufferedReader 的一些问题
【发布时间】:2013-03-15 02:10:17
【问题描述】:
 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) 未定义。但是我只是在我的书中找到了代码并进行了测试,我不知道为什么。感谢您的回答!

【问题讨论】:

  • 谢谢你!虽然它是一样的。它在你的电脑上运行良好,可能是我的电脑出了问题。我会在另一台电脑上运行它并解决它。谢谢!

标签: constructor bufferedreader filereader


【解决方案1】:

不,该代码很好。 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 ...

【讨论】:

    【解决方案2】:

    我将您的代码复制到 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();
        }
     }                          
    }
    

    【讨论】:

    • 您能否为您的答案提供一些背景信息,以便未来的读者可以学习如何将其应用于他们的问题,而不仅仅是在这种情况下。我还强烈建议您阅读stackoverflow.com/help/how-to-answer,使用该链接作为参考可以极大地提高您的答案的可见性和清晰度。
    猜你喜欢
    • 2018-05-24
    • 2013-07-07
    • 2013-05-10
    • 2012-03-18
    • 2023-03-09
    • 2021-07-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多