代码之家  ›  专栏  ›  技术社区  ›  sap

system.out和system.err之间的差异

  •  9
  • sap  · 技术社区  · 16 年前

    据我所知,out和err属于同一类 PrintStream . 有谁能告诉我他们有什么不同……他们是如何改变自己的行为的?

    4 回复  |  直到 16 年前
        1
  •  13
  •   Srikanth    16 年前

    区别并不明显,因为默认情况下,在大多数操作系统中,它们都写入控制台(同一个文件,控制台也是一个文件)。然而,你可以 System.out 写入文件,然后 System.err 写入控制台(监视器)-这只是一个场景。

    编写一个同时发出System.out和System.err消息的程序,然后尝试以下操作:

    java MyProgram > out.txt 2> err.txt # On a *NIX.
    

    消息将转到out.txt并 System.err

        2
  •  3
  •   crazyscot    16 年前

    它们分别进入系统stdout和stderr流。在大多数操作系统上,这些是不同的,可以发送到不同的地方。例如,如果您的程序的输出要被另一个程序解析,这可能很有用-如果它需要报告错误,stderr通常是更好的地方,因为您可能已经设置它以引起人们的注意。

        3
  •  2
  •   Roman    16 年前

    他们有同样的行为。但第一个(out)是对标准输出流的引用(默认情况下,它是一个控制台)。第二个(err)是对标准错误流的引用(默认情况下,它也是一个控制台)。

    例如,我的IDE显示了 err 流在红色的颜色。

        4
  •  0
  •   Robben_Ford_Fan_boy    16 年前

    System.out将输出发送到标准输出流。System.err将输出发送到标准错误流。 默认情况下,这两个都会写入控制台。