一般情况下, 当程序执行完毕后,都会及时的关闭输入流或者输出流,以便及时释放资源。这些输入流或输出流,其生命周期是短暂的,不会运行于程序的整个生命周期中。
然而,对于某些应用程序,可能需要在程序运行的整个生命周期中,自始至终都是从同一个数据源读取数据或者是向同一个数据源来汇集输出数据,也就是说源数据源和目标数据源是始终不变的。这样的话,就不需要频繁的关闭、打开数据流了。
为了适应这样的情况,在jdk的java.lang.System包中提供了三个静态变量(流):
System.in:是InputStream类型,代表的是标准输入流,默认的数据源是键盘,程序通过它读取标准输入流的数据
System.out:是PrintStream类型,代表的是标准的输出流,默认的数据源是控制台(显示器),程序通过它输出运行时的正常信息
System.err:是PrintStream类型,代表的是标准的输出流,默认的数据源是控制台(显示器),程序通过它输出运行时的错误信息
上述三个静态流都是java虚拟机创建的,存在于整个运行生命周期中,始终处于打开状态,只要在程序中没有特别的关闭它们,则可以在程序的任何地方都可以随时利用他们来输入或则输出数据。
这就是java标准输入输出的含义。