Java复习之IO流-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流是如何进行分类以及不同类别的概念区别
恭喜,完成第一节复习√

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值