Между чем различие System.out.println()
и System.err.println()
в Java?
Основное назначение System.out
- выдача стандартного вывода.
Основное назначение System.err
- выдача стандартной ошибки.
Посмотрите на эти
http://www.devx.com/tips/Tip/14698
http://wiki.eclipse.org/FAQ_Where_does_System.out_and_System.err_output_go%3F
В Java System.out.println ()
будет печатать в соответствии со стандартом той системы, которую вы используете. С другой стороны, System.err.println ()
распечатает стандартную ошибку.
Если вы используете простое консольное приложение Java, оба выхода будут одинаковыми (командная строка или консоль), но вы можете перенастроить потоки так, чтобы, например, System.out
по-прежнему печатал в консоль, но System.err
записывает в файл.
Кроме того, IDE, такие как Eclipse, по умолчанию показывают System.err
красным текстом и System.out
черным текстом.
Эти команды используют разные потоки вывода. По умолчанию оба сообщения будут напечатаны на консоли, но можно, например, перенаправить одно или оба сообщения в файл.
java MyApp 2>errors.txt
Это перенаправит System.err
в файл errors.txt
.
System.out - это «стандартный вывод» (stdout), а System.err - «вывод ошибок» (stderr). Наряду с System.in (stdin) это три стандартных потока ввода-вывода в модели Unix. Большинство современных сред программирования (C, Perl и т. Д.) Поддерживают эту модель.
Стандартный поток вывода используется для вывода на печать вывода «обычных операций» программы, а поток ошибок предназначен для «сообщений об ошибках». Они должны быть отдельными, хотя в большинстве случаев они появляются на одной консоли.
Предположим, у вас есть простая программа, в которой вы вводите номер телефона, а она распечатывает человека, у которого есть этот номер. Если вы введете неверный номер, программа должна сообщить вам об этой ошибке, но не должна этого делать в качестве ответа : Если вы введете «999-ABC-4567» и программа распечатает сообщение об ошибке «Недействительный номер» не означает, что есть человек с именем «Недействительный номер» с номером 999-ABC-4567. Таким образом, он ничего не выводит на стандартный вывод, а сообщение «Недопустимое число» выводится на вывод ошибки.