A FileWriter
Используется для именованного файла (chars.txt
в этом случае). В то время как PrintWriter
используется для упрощения использования OutputStream
путем добавления методов print
.
Теперь существует конструктор для PrintWriter
, который принимает имя файла. Таким образом, для использования конструктора PrintWriter
было бы немного более эффективным кодом (но без разницы во времени выполнения). Если вы посмотрите на то, что делает конструктор по PrintWriter
«s, это делает более или менее то, что ваш пример делает:
public PrintWriter(String fileName) throws FileNotFoundException {
this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName))),
false);
}
То, что я подозреваю, что ваш учитель делает демонстрирует огромную силу сцепления при использовании писателей/кос/и т. д. в стандартной библиотеке Java.
Также очень важно понять, что происходит под капотом, так хороший вопрос. Я рекомендую использовать Java IDE хорошего качества, например Eclipse, и установить полный JDK, чтобы вы могли следовать определениям конструкторов в исходный код стандартной библиотеки Java.
Вы знаете, лучший человек, чтобы спросить об этом, является вашим учителем. – RealSkeptic
это онлайн-курс, и учитель больше не отвечает на вопросы или не обновляет вещи. – billgarr
Вы уверены, что он не использовал 'new File (fileName)'? Или 'new FileWriter (fileName, true))'? Как показано на вашем посте, это не имеет большого смысла. Но вариант для добавления доступен только на уровне «файла» писателей. – laune