簡體   English   中英

我的老師為什么要這樣定義PrintWriter

[英]why does my teacher define PrintWriter this way

我正在學習Java入門課程,我的老師使用PrintWriter像這樣:

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

從我在網上看到的示例來看,似乎人們在使用另一個。 我想知道的是為什么他會像這樣將FileWriter分配給PrintWriter? 沒什么大不了的,它只是困擾我,我想知道發生了什么。

這是一門在線課程,老師不再回答問題。

FileWriter用於命名文件(在這種情況下為chars.txt )。 使用PrintWriter通過添加print方法使使用OutputStream更加容易。

現在有一個使用文件名的PrintWriter構造函數。 因此,直接使用PrintWriter構造函數會提高代碼效率(但在運行時沒有區別)。 如果您看一下PrintWriter的構造函數的作用,那么它或多或少地完成了示例的工作:

public PrintWriter(String fileName) throws FileNotFoundException {
    this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName))),
         false);
}

我懷疑您的老師正在做的事情是證明在使用標准Java庫中的writers / streamers / etc時鏈接的強大功能。

了解引擎蓋下發生的事情也很重要,這是一個很好的問題。 我建議使用像Eclipse這樣的高質量Java IDE並安裝完整的JDK,以便您可以遵循Java標准庫源代碼的構造函數定義。

PrintWriterFileWriter實現了一個構造函數,該構造函數將文件名作為其參數。 可能是您的老師無意中犯了一個錯誤,或者他想向您展示java.io包中廣泛使用的裝飾器模式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM