2015-06-13 56 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。