2015-06-13 25 views
1

我正在使用Java学习几节课,并且教师开始介绍IO如何在Java中工作。我只是有一个问题,一个Java程序员可以澄清的经验。Java - 使用IO - 澄清

下面的代码段是一个程序,它在我写代码的同一个文件目录中创建一个(记事本)文本文件。之后,它只是将基本的文本行打印到该文件。

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的构造函数。在它的构造函数内部,我们调用我们创建的文件的名称作为String。这是令人困惑的部分。我不完全了解PrintWriter和FileWriter正在做什么。它看起来像FileWriter正在创建我们的文件,PrintWriter给我们println()方法将两个数字打印到文件中。经过研究,我发现你可以用FileWriter和PrintWriter实现相同的目的。以这种方式教授文件处理的目的是什么,这两个类正在做什么?感谢您为我澄清这一点的帮助!

+3

你可能会考虑......阅读类的javadoc。他们解释了课程的内容,以及他们做了什么。 –

+0

不错,看起来很简单,但是,我已经看过文档了。该文档仍然有点模糊,但是这些是Java的定义: ** PrintWriter **:将对象的格式化表示形式打印到文本输出流。 问题:在这个例子中文本输出流是FileWriter吗? ** FileWriter **:写字符文件的便捷类。 FileWriter用于编写字符流。 问:FileWriter是流,并通过编写一个字符文件,这是否意味着它只是创建文件,或者也是流式传输? –

+1

文件写入器是一个字符流,允许将字符写入文件(如其名称所示)。它实现了Writer。 PrintWriter向任何作者打印对象的格式化表示。而FileWriter是一个Writer。 –

回答

1

该代码相当于

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

所以它首先创建一个FileWriter,其写字符到一个文件,然后创建该打印其值提供给FileWriter的一个PrintWriter。