【发布时间】:2015-06-13 21:04:51
【问题描述】:
我正在学习一些 Java 课程,讲师开始介绍 IO 如何在 Java 中工作。我只是有几个问题,有经验的 Java 程序员可以澄清一下。
下面的一段代码是一个程序,它在我正在编写代码的同一文件目录中创建一个(记事本)文本文件。之后,它只是将基本的文本行打印到该文件中。
import java.io.FileWriter; //Imports Filewriter class
import java.io.PrintWriter; //Imports PrintWriter class
import java.io.IOException; //Imports IOException
public class Chap17Part2
{
public static void main(String[] args) throws IOException
{
String fileName = "grades.txt"; //Creating name for file
PrintWriter outFile = new PrintWriter(new FileWriter(fileName)); //Question 1
outFile.println(85); //Prints to file
outFile.println(77); //Prints to file
outFile.close(); //Ends buffer, and flushes data to file.
}
}
问题一:由于导师只是简单的解释,这行代码让我有点摸不着头脑。我知道在这一行中,我们正在创建“outFile”对象。之后,我们调用 PrintWriter 构造函数,在其参数中,我们调用 FileWriter 的构造函数。在其构造函数内部,我们将创建的文件的名称称为字符串。这是令人困惑的部分。我不完全了解 PrintWriter 和 FileWriter 在做什么。看起来 FileWriter 正在创建我们的文件,而 PrintWriter 为我们提供了 println() 方法来将两个数字打印到文件中。经过研究,我发现使用 FileWriter 和 PrintWriter 几乎可以达到相同的目的。以这种方式教授文件处理的目的是什么,这两个班级到底在做什么?感谢您帮助我澄清这一点!
【问题讨论】:
-
您可能会考虑...阅读类的 javadoc。他们解释了这些课程的用途以及它们的作用。
-
没错,看起来很简单,但是,我已经看过文档了。文档阅读起来仍然有些模糊,但这些是来自 Java 的定义: PrintWriter:将对象的格式化表示打印到文本输出流。问题:本例中的文本输出流是 FileWriter 吗? FileWriter:编写字符文件的便利类。 FileWriter 用于写入字符流。问题:FileWriter 是流,写一个字符文件,是只是创建文件,还是流式传输?
-
文件写入器是一个字符流,它允许将字符写入文件(如其名称所示)。它实现了Writer。 PrintWriter 将对象的格式化表示打印到任何编写器。 FileWriter 就是 Writer。
-
直接来自 PrintStream 的 javadoc。它将双精度数打印为十进制数、带有 toString() 方法的对象、带有“null”的空值等。
-
我不会那样说的。该代码相当于
FileWriter fw = new FileWriter(fileName); PrintWriter outFile = new PrintWriter(fw);。因此它首先创建一个 FileWriter,将字符写入文件,然后创建一个 PrintWriter,将其值打印到 FileWriter。
标签: java file io filewriter printwriter