为什么我的老师会这样定义PrintWriter

时间:2015-10-11 18:39:40

标签: java

我正在参加一个简介java课程,我的老师像这样使用PrintWriter:

String fileName = "chars.txt";
PrintWriter outFile = new PrintWriter(new FileWriter(fileName));

从我在网上看到的例子来看,似乎人们使用其中一种。我想知道的是为什么他会像这样将FileWriter分配给PrintWriter?这不是什么大不了的事只会让我感到烦恼,我想知道发生了什么。

这是一个在线课程,老师不再回答问题了。

2 个答案:

答案 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)

PrintWriterFileWriter都实现了一个以文件名作为参数的构造函数。可能是您的老师犯了一个意外的错误,或者他想向您展示java.io广泛使用的border: solid red 2px; margin:0px; height:500px; 包裹。