再回首Java第二十五天
流的分类
按照流的流向来分,可以分为输入流和输出流
输入流:只能从中读取数据,不能向其写数据
输出流:只能向其写数据,不从能从中读数据
Java输入流主要有InputStream和Reader作为基类,Java输出流主要以OutputStream和Writer作为基类
字节流和字符流
字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不一样:字节流操作的最小数据单元是8位的字节,而字符流操作的最小数据单元是16位的字符
节点流和处理流
可以从向一个特定的IO设备(如磁盘、网络)读写数据的流称为节点流,节点流也称为低级流
处理流用于对一个已经存在的流进行连接和封装,通过封装后的流来实现数据读写功能。处理流也被称为高级流
使用处理流来进行输入输出时,程序并不会直接连接到实际的数据源,没有和实际的输入、输出节点连接。使用输入输出流的一个明显的好处是:只要使用相同的处理流,程序就可以采用完全相同的输入、输出代码来访问不同的数据源,随着处理流所包装节点流的改变,程序实际所访问的数据源也相应的发生改变
实际上Java使用处理流来包装节点流是一种典型的装饰器设计模式,通过使用处理流来包装不同的节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入、输出功能,因此处理流也被称为包装流