1

我正在使用 JDK 7,并尝试使用以下代码执行简单的写入文件操作:

import java.io.BufferedWriter;
import java.io.FileWriter; // JAVA says this is conflicting...why?

FileWriter fw = new FileWriter("hello.txt");
BufferedWriter bw = new BufferedWriter(fw); // JAVA says this is an error and asks me to convert FileWriter to type Writer.

我正在使用 JDK 7,这就是我一直使用 Java 写入文件的方式,但这是 JDK 7 中的第一个,它不起作用。

有人可以解释为什么吗?

4

2 回答 2

4

我能想到的唯一原因是您在与该类相同的包中具有一个名为 FileWriter 的类,您从中复制了代码片段。在这种情况下,您不能从不同的包中导入 FileWriter 类,而必须在代码本身中使用限定名称 (java.io.FileWriter)。

于 2012-05-03T17:46:11.583 回答
1

您可以将 fw 实例设为 aWriter吗?例如

Writer fw = new FileWriter("hello.txt");
BufferedWriter bw = new BufferedWriter(fw);

使用接口/抽象而不是具体实现是一种很好的做法。

FileWriter 继承自 OutputStreamWriter,OutputStreamWriter 继承自 Writer。

更重要的是,BufferedWriter构造函数需要一个Writer实例。

于 2012-05-03T17:40:37.870 回答