我主要关注Linux,但涉及Windows的答案也受欢迎。
当我使用System.out.println
或cout<<
时,实际上会发生什么?在GUI应用程序中执行cout
时会发生什么(它去哪里了)?
我感兴趣的一个例子是Netbeans IDE。当我在Netbeans中运行Java程序时,是什么使IDE能够“窃取”程序的输出并显示它?
更新/旁注
http://www.linfo.org/standard_output.html
标准输出的一个特点是它有一个默认目的地,但可以轻松地重定向(即转移)到另一个目的地。默认目的地是启动程序的计算机上的显示屏。因为标准流是纯文本,所以根据定义是人类可读的。
“启动程序”的意思是什么? 我不太熟悉程序如何开始执行,但在我的Netbeans示例中,很明显是IDE启动了程序。那是什么意思?当设置要执行程序时,是否有一些元数据漂浮在周围,让操作系统知道Netbeans正在启动程序?
stdout
。 - chrisSystem.out.println
会打印括号()中指定的值,并以新行结束输出。对于cout <<
,它将输出在<<之后指定的值,而不带有换行符。要使cout
打印一个新行字符,请在值后添加<< endl
。System.out.print
在这方面比System.out.println
更接近于cout
。 - localhost./prog > output.txt
)或者管道传输(./prog | less
)。 - chris