Java--IO流.基础

概念:内存与存储设备之间传输数据的通道

按流向分类
输入流:将 存储设备 中的数据读入 内存
输出流:将 内存 中的内容写入到 存储设备

按单位分类
字节流:以字节为单位,可以读写所有数据
字符流:以字符为单位,只能读写文本数据

按功能分类
节点流:具有实际传输数据的读写功能(FileInputStream / FileOutputStream)
过滤流:在节点流的基础之上增强功能(BufferedInputStream / BufferedOutputStream)

字节流父类(抽象类)
InputStream:字节输入流
OutputStream:字节输出流
在这里插入图片描述

字节流

1.文件字节流
FileInputStream / FileOutputStream
在这里插入图片描述

2.字节缓冲流
提高IO效率,减少访问磁盘的次数
数据存储在缓冲区
BufferedInputStream / BufferedOutputStream

3.对象流
ObjectInputStream(反序列化) / ObjectOutputStream(序列化)
在这里插入图片描述

增强读写对象的功能
序列化:把内存的对象写入流中
注意事项:

  • 1.序列化类需要实现Serializable接口
  • 2.序列化类中对象属性要求实现Serializable接口
  • 3.序列化版本号ID,保证序列化的类和反序列化的类是同一个类
  • 4.使用transient修饰属性,则该属性不能序列化
  • 5.静态属性不能序列化
    • 6.序列化多个对象,可以借助集合实现

反序列化:从文件中读取对象
static属性定义在类文件中之后,在其他类中调用该属性,并更改静态属性的值,只是更改了内存中静态属性的值,类文件中定义的静态属性并没有受到影响,当你在其他类中再次调用静态属性时,还是初始值

字符流

1.文件字符流
在这里插入图片描述
FileWriter有缓冲区

2.字符缓冲流
在这里插入图片描述

打印流

在这里插入图片描述
PrintWriter有缓冲区

转换流

在这里插入图片描述
InputSreamReader:硬盘的字节输入流在内存转换为字符输入流
OutputStreamWriter:内存的字符输出流在硬盘转换为字节输出流

File类

在这里插入图片描述
FileFilter
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值