Java-使用IO-澄清

Java-使用IO-澄清,java,file,io,filewriter,printwriter,Java,File,Io,Filewriter,Printwriter,我正在学习一些Java课程,讲师开始介绍IO如何在Java中工作。我只是有几个问题,有经验的Java程序员可以澄清 下面的代码是一个程序,它在我编写代码的同一文件目录中创建一个(记事本)文本文件。之后,它只需将文本的基本行打印到该文件中 import java.io.FileWriter; //Imports Filewriter class import java.io.PrintWriter; //Imports PrintWriter class import java.io.IOExce

我正在学习一些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.

    }

}

问题1:由于讲师只做了简短的解释,这行代码让我有点困惑。我知道在这一行中,我们正在创建“outFile”对象。之后,我们调用PrintWriter构造函数,在其参数中,我们调用FileWriter的构造函数。在它的构造函数中,我们以字符串的形式调用我们创建的文件名。这是令人困惑的部分。我不太清楚PrintWriter和FileWriter在做什么。看起来FileWriter正在创建我们的文件,PrintWriter给了我们println()方法来将这两个数字打印到文件中。经过研究,我发现使用FileWriter和PrintWriter几乎可以达到相同的目的。以这种方式教授文件处理的目的是什么?这两门课到底在做什么?谢谢你帮我澄清这一点

代码相当于

FileWriter fw = new FileWriter(fileName); 
PrintWriter outFile = new PrintWriter(fw);

这样,它首先创建一个文件写入器,它将字符写入文件,然后创建一个打印文件,该文件将其值打印到文件写入器。阅读类的javadoc。它们解释了类的用途和作用。的确,这看起来很简单,但是,我已经看过了文档。文档阅读起来仍然有点模糊,但这些是Java:PrintWriter:将对象的格式化表示形式打印到文本输出流中的定义。问题:在本例中,文本输出流是FileWriter吗?FileWriter:用于编写字符文件的便利类。FileWriter用于写入字符流。问题:文件编写器是流吗?通过编写字符文件,这是否意味着它只是在创建文件,还是也在流式处理文件?文件编写器是一个字符流,允许向文件中写入字符(如其名称所示)。它实现了Writer。PrintWriter将对象的格式化表示打印到任何写入程序。FileWriter是一个Writer,它直接来自PrintStream的javadoc。它将双精度数字打印为十进制数字,对象使用其toString()方法,空值使用“null”等等。我不会这样说。代码相当于

FileWriter fw=newfilewriter(fileName);PrintWriter outFile=新的PrintWriter(fw)。因此,它首先创建一个FileWriter,将字符写入文件,然后创建一个PrintWriter,将其值打印到FileWriter。