Java复习之IO流-IO基础介绍
1.IO的基本概述
1.IO流概述及其前奏
1.IO流概述
~IO流用来处理设备之间的数据传输,比如常见存储文件,上传文件和下载文件
2.IO流前奏
问题:讲解IO流之前为什么要讲解异常和File类呢?
回答:
~因为File表示的是IO流将来要操作的文件,所以我们需要学习File类
~而常见操作文件无非是上传文件和下载文件,在这个操作的过程中可能出现问题,出现问题后,我么需要对对应的代码进行处理,所以我们需要学习异常
2.IO流整体学习知识体系
1.IO流概述
~IO流是用来处理设备之间的数据传输
~Java对数据的操作是通过流的方式
~Java用于操作流的对象都在IO包中
2.IO流的分类
A.按照数据流向分类
~输入流 读入数据
~输出流 写出数据
B 按照数据类型分类
~字节流
~字符流
问题:什么情况下使用哪种流呢?
回答:
如果数据所在文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流,其他用字节流 ,如果什么都不知道,就用字节流
C 按照字节流和字符流分
1.字节流
~字节输入流 InputStream读
~字节输出流 OutputStream写
2.字符流
~输入流 InputStream读
~输出流 OutoutStream写
注:上面的4个流对象都是抽象流,我们需要使用子类
2.IO流的概念
- Java的IO流是实现输入输出的基础
它可以方便地实现数据输入输出操作,在java中把不同的输入输出源抽象的表述为“流”
- 流是一组有顺序的
有起点和终点的字节集合,是对数据传输的总称或抽象,即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性,将传输特性将流抽象为各种类,方便更直观的进行数据操作
- 流有输入和输出,输入时是流从数据源流向程序,输出时是流从程序传向数据源,而数据源可以是内存,文件,网络或程序等
3.输入流和输出流
- 根据数据流向不同分为:输入流和输出流
输入流:只能从中读取数据,而不能向其写入数据
输出流:只能向其写入数据,而不能从中读取数据
- 如下图所示:对程序而言,向右的箭头,表示输入,向左表示输出
- 节点流和处理流
1.按照流的角色来分,可以分为节点流和处理流
~可以从/向一个特定的IO设备(如磁盘,网络)读/写数据的流,称为节点流,节点流也被成为低级流,处理流是对一个已存在的流进行连接或封装,通过封装后的流来实现数据读/写功能,处理流也被称为高级流
//节点流,直接传入的参数是IO设备
FileInputStream fis = new FileInputStream("test.txt");
//处理流,直接传入的参数是流对象
BufferedInputStream bis = new BufferedInputStream(fis);
2.当使用处理流进行输入/输出时,程序并不会直接连接到实际的数据源,没有和实际的输入/输出代码来访问不同的数据源,随着处理流所包装节点流的变化,程序实际所访问的数据源也相应地发生变化
3.实际上,Java使用处理流来包装节点流是一种典型的装饰器设计模式,通过使用处理流来包装不同的节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入/输出功能
本节内容重点在IO流的概念和IO流是如何进行分类以及不同类别的概念区别
恭喜,完成第一节复习√