我正在参加一个简介java课程,我的老师像这样使用PrintWriter:
String fileName = "chars.txt";
PrintWriter outFile = new PrintWriter(new FileWriter(fileName));
从我在网上看到的例子来看,似乎人们使用其中一种。我想知道的是为什么他会像这样将FileWriter分配给PrintWriter?这不是什么大不了的事只会让我感到烦恼,我想知道发生了什么。
这是一个在线课程,老师不再回答问题了。
答案 0 :(得分:0)
FileWriter
用于命名文件(在本例中为chars.txt
)。虽然使用PrintWriter
可以通过添加OutputStream
方法更轻松地使用print
。
现在有一个PrintWriter
的构造函数,它带有一个文件名。因此,直接使用PrintWriter
构造函数会有更多的代码效率(但在运行时没有差异)。如果你看一下PrintWriter
的构造函数的作用,它会或多或少地影响你的例子:
public PrintWriter(String fileName) throws FileNotFoundException {
this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName))),
false);
}
我怀疑你的老师正在做的是在标准Java库中使用编写器/流媒体/等时展示链接的巨大力量。
理解幕后发生的事情也非常重要,这是一个很好的问题。我建议使用像Eclipse这样的高质量Java IDE并安装完整的JDK,这样就可以遵循Java标准库源代码的构造函数定义。
答案 1 :(得分:0)
PrintWriter
和FileWriter
都实现了一个以文件名作为参数的构造函数。可能是您的老师犯了一个意外的错误,或者他想向您展示java.io
广泛使用的border: solid red 2px;
margin:0px;
height:500px;
包裹。