System.out.println()和System.err.println()之间的区别

use*_*299 46 java println system.out system.err

System.out.println()System.err.println()Java有什么区别?

Car*_* G. 62

在Java中,System.out.println()将打印出您正在使用的系统标准.另一方面,System.err.println()将打印到标准错误.

如果您使用的是简单的Java控制台应用程序,则两个输出都是相同的(命令行或控制台),但您可以重新配置流,以便例如System.out仍然打印到控制台但System.err写入文件.

此外,像Eclipse这样的IDE 默认显示System.err为红色文本和System.out黑色文本.

  • 此外,System.out是缓冲的,而System.err则不是 (25认同)
  • 不要忽略你的答案,但它通常被称为标准输出和标准错误(stdout/stderr),而不是标准输出和错误输出.提前道歉+1,因为除了那个挑剔,你是对的. (3认同)
  • 你是对的,但我无法记住正确的名字......使用 C# 显然对我的低级编程技能不利 (2认同)

Pau*_*ter 29

System.out是"标准输出"(stdout),System.err是"错误输出"(stderr).与System.in(stdin)一起,这些是Unix模型中的三个标准I/O流.大多数现代编程环境(C,Perl等)都支持这种模型.

标准输出流用于打印程序"正常操作"的输出,而错误流用于"错误消息".这些需要分开 - 尽管在大多数情况下它们出现在同一个控制台上.

假设您有一个简单的程序,您可以在其中输入电话号码,并打印出具有该号码的人.如果您输入的数字无效,程序应通知您该错误,但不应该这样做作为答案:如果输入"999-ABC-4567",程序将输出错误消息"Not a valid number" ,这并不意味着有一个名为"非有效数字"的人,其编号为999-ABC-4567.因此它不打印任何标准输出,并且错误输出中将显示消息"Not a valid number".