关闭

Java I/O总结——OutputStream

288人阅读 评论(0) 收藏 举报

java.io. OutputStream 类总结

和InputStream类似,OutputStream(写入一系列字节的对象)是所有字节形式输出流的父类。类结构图如下图所示(单击查看大图片):

OutputStream

上面这张图与前面的java.io.InputStream的类结构图有些类似,在java.io.InputStream/OutputStream的类结构中可以找到相互对应的类,这里额外需要说明的是PrintStream类。

这个类看上去有些陌生,很少使用它。实际上标准输出流:System.out的类型就是java.io.PrintStream。PrintStream作为FilterOutputStream的子类,其作用也是将某个输出流再次封装,并且提供了一些新的输出特性。说到System.out估计大家就明白多了,这里就不在说明了。其他标准输出:System.in的类型是InputStream,其默认是由JRE指向系统的标准输入流,在控制台下默认是键盘的输入,使用in.read()方法,将返回用户键盘输入的值;System.err的类型也是java.io.PrintStream。

下面举个具体的例子来说明,如何实现重定向标准输入/输出:

PrintStream output = new PrintStream(new FileOutputStream(“c:/out.log”));
System.setOut(output);

PrintStream errOutput = new PrintStream(new FileOutputStream(“c:/err.log”));
System.setErr(errOutput);

System.out.println(“Output redirect test”);
System.err.println(“Error redirect test”);

原来在控制台输出的文字都将被写入out.log或err.log文件中。

对其他的字节流,做个稍微的总结,如下图所示:

基本的流类

总结说明

java.io学习起来也相当的简单,我个人认为主要原因是JAVA是完全面向对象的,而C++由于包含了一些C语言的元素,在很多方面显得比较复杂,估计这也是大部分人认为C++比JAVA复杂的主要原因吧!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    最新评论