资 源 简 介
3.11 流
知道流的分类
掌握IO常用操作
Java中的流代表程序中数据的流通,是以先进先出方式发送信息的通道。
图3- 11 输入流和输出流
流可以分为不同的类型,按照不同的分类方式,从不同的角度来观察,概念上会有重叠。
按照流的方向,可以将流分为输入流和输出流:
输入流(InputStream):只能从中读取数据,而不能向其写入数据。
输出流(OutputStream):只能向其写入数据,而不能从中读取数据。
按照处理流的基本单位可以将流分为字节流和字符流:
字节流:在流中处理的基本单位为字节(8位的byte)的流。
字符流:在流中处理的基本单位为字符(16位的Unicode)的流。
按照流的角色分,可以将流分为节点流和过滤流:
节点流:可以从/向一个特定的IO设备(如磁盘或网络)读/写数据的流,节点流又常被称为低级流(Low Level Stream),节点通常是指文件、内存和管道。
过滤流:实现对一个已经存在的流的连接和封装,通过所封装的流的功能调用实现数据读/写功能的流。这种对流进行处理的流称为过滤流。
字节流中存放的是字节序列,无论是输入还是输出,都是直接对字节进行处理。InputStream和OutputStream为字节输入/输出流类的顶层父类。字符流中存放的是字符序列,无论是输入还是输出,都是直接对字符处理。字符流的顶层父类是Reader和Writer。节点流通常直接对特定的IO设备(如磁盘或网络)进行读写,而过滤流通常对已存在的流进行连接和封装,从而对已有的流进行特殊处理。
对象的序列化就是把对象写到一个输出流中,对象的反序列化是指从一个输入流中读取一个对象。
总结:
字节流:
输入流 输出流
FileInputStream FileOut