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.