.1 IO流概述和分类
IO流概述:
IO:输入/输出(input/ouput)
流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输
IO流就是用来处理设备间数据传输问题的
常见的应用:文件复制,文件上传,文件下载
按数据流向:输入流,输出流
输入流为读数据,输出流为写数据
按数据类型:字节输入流/输出流,字符输入流/输出流
一般来说是按数据类型来分的。
字节流抽象类基类:
1、InputStream:这个抽象类是表示字节输入流的所有类的超类
2、OutputStream:这个抽象类是表示字节输出流的所有类的超类
3、子类名特点:子类名称都是以其父类名作为子类名的后缀
FileOutputStream:文件输出流用于将数据写入文件File
使用字节输出流写数据的步骤
1.创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)
2.调用字节输出流对象的写数据方法
3.释放资源(关闭此输出流并释放与此流相关联的任何系统资源)
2.3 字节流写数据的3种方式
void write(int b)
将指定的字节写入到此文件输出流,一次写一个字节数据
void write(byte[] b, int off, int len)
将len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流,一次写一个字节数组的部分数据
void write(byte[] b)
将b.length字节从指定的字节数组写入此文件输出流,一次写一个字节数组数据
2.4字节流写数据加异常处理
一般直接在外面包try{}catch{},但是会有一个问题,如果写入数据失败会运行catch的内容,但是close方法没有运行到也就是资源没有被释放。所以在io操作一定要保存内存被释放。
提供了finally块来执行所有清除操作
finally:在异常处理时提供finally块来执行所有清除的操作。比如io流中的资源释放。
特点:被finally块控制的语句一定会执行,除非JVM退出
2.5 字节流读数据
使用字节输入流读数据的步骤:
1.创建字节输入流对象
2.调用字节输入流对象的读数据方法
3.释放资源