老实说用谷歌搜索。发现这个:OutputStreamWriter vs FileWriter。答案一般谈论 XXXInputStream 和 XXXOutputStream 之间的区别(虽然这很有帮助,但这不是我需要的)。
从第二个链接来看:OutputStream、BufferedWriter 和 FileWriter 的区别。我也没有找到答案。
本质上:
这是完整的类代码:
public class FileWriter extends OutputStreamWriter {
public FileWriter(String fileName) throws IOException {
super(new FileOutputStream(fileName));
}
public FileWriter(String fileName, boolean append) throws IOException {
super(new FileOutputStream(fileName, append));
}
public FileWriter(File file) throws IOException {
super(new FileOutputStream(file));
}
public FileWriter(File file, boolean append) throws IOException {
super(new FileOutputStream(file, append));
}
public FileWriter(FileDescriptor fd) {
super(new FileOutputStream(fd));
}
public FileWriter(String fileName, Charset charset) throws IOException {
super(new FileOutputStream(fileName), charset);
}
public FileWriter(String fileName, Charset charset, boolean append) throws IOException {
super(new FileOutputStream(fileName, append), charset);
}
public FileWriter(File file, Charset charset) throws IOException {
super(new FileOutputStream(file), charset);
}
public FileWriter(File file, Charset charset, boolean append) throws IOException {
super(new FileOutputStream(file, append), charset);
}
}
它绝对实现了所有构造函数OutputStreamWriter
。它并没有添加任何新内容。我很困惑。
这只是
OutputStreamWriter
写入文件的一种特殊情况。这样的包装。它允许您简单地不使用构造函数调用堆积代码
FileOutputStream
,只是它的调用被封装在FileWriter
一个可能在你的代码中是这样的:
它会变得更短、更简洁、更清晰: