IO流03_流的分类和概述

【概述】

Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作。

Java中把不同的输入/输出源(键盘、文件、网络连接)抽象表述为"流"(Stream)。

 

【流的分类详细】

[ 输入流---输出流 ]

按照流的流向,可以将流分为输入流和输出流。

输入流:从其中读取数据

输出流:向其种写入数据

注意:划分输入/输出流是从程序运行时的所在的内存的角度来划分的。

 

输入流常用的基础类:InputStream和Reader

输出流常用的基础类:OutputStream和Writer

注意:这些积累都是抽象类,无法直接实例化。

 

[ 字节流---字符流 ]

字节流和字符流的内的方法几乎一样,区别仅仅是其操作的数据单元大小不同,

字节流的数据操作单元: 8位的字节

字符流的数据操作单元: 16位的字节

 

字节流常用的基础类:InputStream和OutputStream

字符流常用的基础类:Reader和Writer

 

[ 节点流---处理流 ]

节点流:从/向一个特定的IO设备(磁盘、网络等)读/写数据的流。节点流也常称为低级流( Low Level Stream )如下。

 从图中可以看出,当使用节点流进行输入/输出时,程序直接连接到实际的数据源,和实际的输入/输出节点连接。

 

处理流:用于对已存在的流进行连接或封装,通过封装后的流来实现对数据的读/写功能。处理流常被称为高级流。

 

从图中可以看出,使用处理流进行输入/输出时,程序不会直接连接数据源,没有和实际的输入/输出节点连接。

只要使用相同的处理流,程序就可以采用相同的输入/输出代码来访问不同的数据源。

注:Java使用处理流来包装节点流使用了装饰器模式,使用处理流来包装不同的节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出功能。

节点流又称为包装流。

使用处理流的特点:

1.性能提高:主要增加缓冲的方式来提高输入/输出的效率。

2.操作便捷:处理流提供了一系列便捷的方法来一次输入/输出大批量的内容。

3.处理流可以建立在任何已存在的流基础之上,这就允许java应用程序采用相同的代码、透明的方式来访问不同的输入/输出流。

 

 通过使用处理流,Java程序无需理会输入/输出节点是磁盘、网络还是其他输入输出设备,程序只要将这些节点流包装成处理流,就可以使用相同的输入输出代码来读写不同的输入输出设备的数据。

 

posted @ 2016-09-30 15:34  HigginCui  阅读(706)  评论(0编辑  收藏  举报