System.out.println vs PrintWriter
Есть ли разница в использовании этих двух? Когда вы будете использовать один над другим?
System.out.println(result);
ИЛИ
PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();
Ответы
Ответ 1
Разница в том, что System.out
является PrintStream
, а другой - PrintWriter
. PrintStream
предназначался для записи потока байтов, а PrintWriter
предназначался для записи потока символов (и, следовательно, он имеет дело с кодировками символов и т.д.). Для большинства случаев использования нет разницы.
Ответ 2
System.out
является экземпляром PrintStream
Таким образом, ваш вопрос сужается до PrintStream
vs PrintWriter
-
Все символы, напечатанные PrintStream
, преобразуются в байты, используя кодировку символов по умолчанию платформы. (Syso напрямую записывается в системный выход/консоль)
-
Класс PrintWriter
должен использоваться в ситуациях, где требуется писать символы, а не байты.
Ответ 3
Да, есть небольшая разница. out.println()
является коротким и используется в JSP, в то время как PrintWriter
используется в сервлетах. out.println()
также выводится из PrintWriter.