用于标准流的Java的InputStream / OutputStream

我的理解是,字符流和字节流在C FILE *流内部工作。

在此处输入图像描述

C世界中的标准流是FILE * stdinFILE *stdoutFILE *stderr


InputStream和OutputStream为文件,管道等资源提供子类…

在此处输入图像描述

InputStream和OutputStream api文档没有讨论标准流 – stdin / stdout / stderr


InputStream / OutputStream哪个子类专用于标准流?

如果查看System类的源代码,可以看到以下类型:

 public final static PrintStream out = null; public final static PrintStream err = null; public final static InputStream in = null; 

即stdin和stderr的类型为PrintStream而stdin是InputStream

当然,我们应该通过System.out.println()和类似的操作来访问它们。

关于您在问题中显示的Inputstream / OutputStreamPrintStream扩展了FilterOutputStream ,它扩展了OutputStreamPrintStream的主要目的是添加样式print()println()等有用的函数。