我正在使用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中的第一个,它不起作用。
有人可以解释一下原因吗?
答案 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
实例。