【处理流】
处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/输出的方法。
使用处理流的思路:
使用处理流来包装节点流,程序通过处理流来执行输入输出功能,让节点流与底层的I/O设备、文件交互。
使用处理流的主要优势:
1.对于开发人员,使用处理流进行输入/输出操作更加简单。
2.使用处理流的执行效率更高。
【 区分处理流和节点流 】
只要流的构造方法参数不是一个物理节点,而是一个已经存在的流,那么这种流一定是处理流。
所有的节点流都是直接以物理IO节点作为构造方法的参数的。
【测试1:】
package com.Higgin.part4; import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream; /**
* 处理流
*/
public class PrintStreamDemo {
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("c://testJavaIO/sss.java"); //定义一个节点输出流
PrintStream ps=new PrintStream(fos,true,"UTF-8"); //用处理流PrintStream包装 fos节点输出流
//PrintStream ps=new PrintStream(fos); //不考虑乱码问题这样包装即可
ps.println("啦啦啦啦"); //使用PrintStream执行输出
ps.println("Higgin Cui");
ps.close(); //使用处理流包装了底层的节点流之后,最后只需要关闭最上层的处理流即可。
//关闭最上层的处理流的时候,系统会自动关闭被该处理流包装的节点流
}
}
【程序运行之前】
【运行之后】
【小结】
首先定义了一个节点输出流FileOutputStream,
然后使用程序PrintStream包装了该节点输出流,
最后使用PrintStream的println()方法输出。
PrintStream类的输出功能非常强大,通常,如果需要输出文本内容,都应该将输出流包装成PrintStream后进行输出。
【注意点】
在使用处理流包装了底层的节点之后,只要关闭处理流即可,关闭处理流时,系统会自动关闭被该处理流包装的节点流。