JAVA_I/O流学习_千锋教育

课程目标

image-20220410154337530

什么是流

image-20220410154508509

流的分类

image-20220410154633447

image-20220410154756753

字节流

字节流的父类(抽象类)

image-20220410155302656

字节流的子类

image-20220410155340963

FileInputStream类

创建对象,读取文件(单个字节读取)

image-20220410160014408

读取文件(一次读取多个字节)

image-20220410160803572

read(数组): 从流中读取数组.length()个字符存入数组中

new String(buf,0,count): 创建一个新的数组,通过buf数组,从0开始,组成一个长度为count的新字符串

FileOutputStream类

image-20220410161324008

image-20220410163426194

image-20220410163438790

使用字节流实现文件的复制

image-20220410161726281

字节缓冲流

image-20220410161842933

BufferedInputStream类

image-20220410162547075

BufferedOutputStream类

image-20220410162801503

image-20220410163225367

对象流

image-20220410163652449

image-20220410163738912

new对象时需传入一个字节输入/输出流

ObjectOutputStream

  1. 写入对象时,被写入对象对应的类必须实现Serializable接口,表明这个类是可以被序列化的

image-20220410164530759

  1. 实现序列化(写入)操作
  2. image-20220410164717794

ObjectInputStream

image-20220410165021091

序列化和反序列化注意事项

serialVersionUID:序列化版本ID号
  1. 在被序列化的类中创建,后面的属性值随意写

    image-20220410165518393

  2. 为了保证序列化和反序列化的类是同一个类,若不设置序列化版本ID号,则有可能序列化的类ID为1L,反序列化后的类ID为2L,二者虽然名字相同,但在本质上并不是同一个类。

    image-20220410165611017

使用transient修饰属性,使属性不能被序列化
private transient int age;
静态属性不能序列化
序列化多个对象,通过集合实现
  1. 序列化多个对象:创建集合,将对象add进集合,然后将集合写入流

image-20220410170249201

2.反序列化多个对象:

ArrrayList<Student> list = (ArrayList<Student>())ois.readObject();
System.out.print(list.toString());

字符编码

image-20220410171157743

字符流

image-20220410171632177

字符流的父类(抽象类)

image-20220410171708126

文件字符流

image-20220410171834916

FileReader

  1. 创建FileReader对象,单个字符读取

    image-20220410172209879

  2. 读取多个字符

    image-20220410172404126

FileWriter

image-20220410172604656

使用字符流复制文件

  1. 字符流只能复制文本文件

image-20220410174055537

字符缓冲流

image-20220410174324473

image-20220410174359814

image-20220410174444674

BufferedReader

  1. 创建缓冲流,读取(第一种方式)、关闭文件

    image-20220410175800410

  2. 第二种读取方式:一行一行读取

    image-20220410180105992

BufferedWriter

  1. 创建对象,读取、关闭文件

    image-20220410180307973

打印流

image-20220410180351577

image-20220410180456216

image-20220410180535474

PrintWriter

image-20220410180820318

转换流

image-20220410180946510

image-20220410181046251

image-20220410181146046

转换流的使用

InputStreamReader

image-20220410181553554

OutputStreamWriter

image-20220410181820637

File类

image-20220410202556308

File类的使用

文件操作

  1. 分隔符,文件操作:创建文件

    image-20220410203243205

  2. 删除文件、获取文件信息

    image-20220410203648531

  3. 判断文件

    image-20220410203803474

文件夹操作

  1. 创建文件夹

    image-20220410204110301

  2. 删除文件夹,获取文件夹信息

    image-20220410204432634

  3. 判断文件夹

    image-20220410204455590

  4. 遍历文件夹

    image-20220410204831780

文件过滤器 FileFilter接口

image-20220410205010040

image-20220410205517365

递归遍历文件夹

image-20220410210420888

递归删除文件夹

image-20220410210850971

总结

image-20220410211100755

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值