Java 装饰流

先来说一下Java的转换流:
InputStreamReader: 将输入的字节流转变为字符流
OutputStreamWriter: 将输出的字符流转变为字节流
过程例如:

  • 写入数据-->内存中字符数据-->字符流-->OutputStreamWriter-->字节流-->文件保存(或网络传输)
  • 读取数据<--内存中的字符数据<--字符流<--InputStreamReader<--字节流<--文件保存(或网络传输)
    不管如何操作,最终都是以字节的形式保存在文件中或进行网络传输。

Java装饰流:
按照流是否直接连接实际数据源,例如文件,网络,字节数组等,可以将流分为实体流和装饰流两大类。

  • 实体流指直接连接数据源的流类,如FileInputStream/FileOutputStream和FileReader/FileWriter,该类流直接实现数据源转换为流对象,实体流类均可单独使用。
  • 装饰流不直接连接数据源,而是以其它流对象(实体流对象或装饰流对象)为基础建立的流类,该类流实现了将实体流中的数据进行转换,增强了流的读写能力,常用的有DataInputStream/DataOutputStream和BufferedReader/BufferedWriter等,装饰流不可以单独使用,必须配合实体流或装饰流使用。
  • 由于装饰流都是在已有流对象基础上进行创建的,所以这种创建流的方式被称作“流的嵌套”。装饰流不改变原来实体流对象中的数据内容,只是进行了一些功能的增强。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。