标准流的InputStream/OutputStream-Java

标准流的InputStream/OutputStream-Java,java,Java,我的理解是,字符流和字节流在CFILE*stream内部工作 C世界中的标准流是FILE*stdin,FILE*stdout&FILE*stderr 并且正在为文件、管道等资源提供子类 而api文档中并没有提到-stdin/stdout/stderr InputStream/OutputStream的哪个子类专用于标准流?如果查看系统类的源代码,可以看到以下类型: public final static PrintStream out = null; public final static

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

C世界中的标准流是
FILE*stdin
FILE*stdout
&
FILE*stderr


并且正在为文件、管道等资源提供子类

而api文档中并没有提到-
stdin
/
stdout
/
stderr



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

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

public final static PrintStream out = null;
public final static PrintStream err = null;
public final static InputStream in = null;
i、 e.stdin和stderr的类型为
PrintStream
,stdin的类型为
InputStream

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


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

请随意移除此重复锤,或者添加更多重复链接(如果需要)。我们可以很容易地使用
System.in
System.out
作为输入和输出流来访问
stdin
stdout
。请查看简单的检查
System.in
System.out
在运行时是什么对象…@TimBiegeleisen我不认为这与您链接的问题重复。OP似乎在询问java中的stdin、stderr和stdout的类型。不是如何阅读。我删除了重复的问题,并用另一个替换了它。现在看起来不错吗?
FileInputStream(FileDescriptor fdObj)
其中
fdObj
对于
stdin
可以为0
FileOutputStream(FileDescriptor fdObj)
其中
fdObj
可以为
stdout
的1,为
stderr
的2。出于方便起见,System.out和System.err是PrintStream而不是InputStream,并且假设您想要写入文本。有些不一致的是,
中的
不是一个有用的BufferedReader`或
扫描器
。相反,我们有
控制台
类。