FileWriter和BufferedWriter导入在JDK 7中是“冲突的”

时间:2012-05-03 17:39:15

标签: java file io

我正在使用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中的第一个,它不起作用。

有人可以解释一下原因吗?

2 个答案:

答案 0 :(得分:4)

我能想到的唯一原因是你在类中包含了一个名为FileWriter的类,你从中复制了代码片段。在这种情况下,不允许从其他包导入FileWriter类,但必须在代码本身中使用限定名称(java.io.FileWriter)。

答案 1 :(得分:1)

你可以让fw实例成为Writer吗? e.g。

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

优良作法是使用接口/抽象而不是具体实现。

FileWriter继承自继承自Writer的OutputStreamWriter。

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