标准流的InputStream/OutputStream-Java
我的理解是,字符流和字节流在C标准流的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
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
可以为0FileOutputStream(FileDescriptor fdObj)
其中fdObj
可以为stdout
的1,为stderr
的2。出于方便起见,System.out和System.err是PrintStream而不是InputStream,并且假设您想要写入文本。有些不一致的是,
中的不是一个有用的BufferedReader`或扫描器
。相反,我们有控制台
类。