Разница не очевидна, потому что по умолчанию в большинстве операционных систем они записываются на консоль (тот же файл, консоль также является файлом).Тем не менее, вы можете иметь System.out
запись в файл и System.err
запись в консоль (монитор) - это всего лишь один сценарий.
Написать программу, которая генерирует как System.out, так и System.err.и попробуйте следующее:
java MyProgram > out.txt 2> err.txt # On a *NIX.
System.out
сообщения будут отправлены в out.txt, а System.err
сообщения - в err.txt.Главное, что нужно помнить, это думать о System.out и System.err как о потоках в файлы (каковы они есть), а не как о механизме вывода на монитор, что я и считал новичком.