[英]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標准庫源代碼的構造函數定義。
PrintWriter
和FileWriter
實現了一個構造函數,該構造函數將文件名作為其參數。 可能是您的老師無意中犯了一個錯誤,或者他想向您展示java.io
包中廣泛使用的裝飾器模式 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.