Java “与”之间的区别是什么;“标准流”;及;控制台;?

Java “与”之间的区别是什么;“标准流”;及;控制台;?,java,Java,Java中的“标准流”(System.out,System.in,System.err)和“控制台”(System.Console())之间有什么区别?每个进程(不仅仅是Java程序)都有三个流:输入、输出和错误。在Java中,对这些的访问被简化为System.In、System.out和System.err。它们用于读取或写入命令行。例如,如果您曾经有一个命令行程序请求输入,您键入该命令行程序,然后按enter键,则该输入将进入标准输入 有两个输出流(out和err),因为它们报告不同的内容。

Java中的“标准流”(
System.out
System.in
System.err
)和“控制台”(
System.Console()
)之间有什么区别?

每个进程(不仅仅是Java程序)都有三个流:输入、输出和错误。在Java中,对这些的访问被简化为System.In、System.out和System.err。它们用于读取或写入命令行。例如,如果您曾经有一个命令行程序请求输入,您键入该命令行程序,然后按enter键,则该输入将进入标准输入

有两个输出流(out和err),因为它们报告不同的内容。例如,您可能希望保存错误输出,但不关心程序打印的通用输出。或者,您可能希望抑制标准输出,以便只打印错误。或者你有一个程序有各种各样的问题,你想抑制错误,这样你就可以看到它试图做什么,而不是1000万个堆栈跟踪


因此,对您的问题的简短回答是,标准流是向控制台写入数据和从控制台读取数据的方式。

简而言之,控制台可以捕获数据流并将其显示在屏幕上。每个程序都可以访问输入/输出流,但并非每个程序都可以访问控制台

一些程序在其流最初(或最终重定向)时无法访问控制台。其他程序在从未访问过控制台的配置中启动。在后一种情况下,写入
System.out
的所有内容都可能已写入
/dev/null


虽然这适用于Java,但控制台(以及流的“另一端”)实际上是操作系统概念。

请更具体一些。你是说
系统.out
系统.err
的工作原理吗?请详细说明你的问题。@normalocity你能回答这个问题吗?有人能回答这个问题吗?@Dan@hellectronic w如果问题清楚,你能回答这个问题吗?这并不能真正回答问题。有一个
System.console()
,它返回一个
console
对象。