IO流

IO流

目的:想要读写文件内部的内容

方案:流

流:管道 数据以流动的形式,先入先出的方式进行传输

数据源——数据——目的地

java提供的io包

流的分类:

流向:(以程序为中心)

​ 输入流

​ 输出流

操作单元分:

​ 字节流:任何数据都可以传输

​ 字符流:文本

功能分

​ 节点流:操作基本功能的,实现读入写出的,数据从数据源头到目的地的

​ 功能流:增强功能,提高性能,操作于节点流之上的

字节流

InputStream FileInputStream

构造器:

FileInputStream(File file)//通过打开一个到实际文件的连接来创建一个FileInputStream
FileInputStream(String name)
  1. 建立联系
  2. 选择流
  3. 读数据
  4. 关闭

每次读入一个字节的内容,虽然可以重复读取多次,太麻烦,效率低

OutPutStream FileOutputStream

  1. 选择流
  2. 写出
  3. 输出
  4. 关闭

如果目标文件不存在,系统会自动为你创建,但是目录不会

选择流boolean append ,true 追加,false 覆盖

字符流

字符流:只能读写纯文本的内容

字符输入流 Reader FileReader

字符输出流Writer FileReader

功能流

缓冲流:

提高节点流的功能,增强性能,加快读写效率

BufferedInputStream 字节输入缓冲流

BufferedOutputStream 字节输出缓冲流

BufferedReader 字符输入缓冲流

​ 新增方法:readLine()读取一行,返回读入的内容,没有返回null

BufferedWriter 字符输出缓冲流

​ 新增方法:newLine()换行符

转换流

字节流转换成字符流

基本数据类型流

字节流的功能流

读写带有基本数据类型|字符串类型的数据

DataInputStream

​ 新增方法:readXxx()

DataOutputStream

​ 新增方法:writeXxxx()

​ 不能发生多态

读写数据顺序要一致

对象流

数据+数据类型

序列化和反序列化:序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程

序列化输出流:ObjectOutputStream

反序列化输入流:ObjectInputStream

先序列化后反序列化,不是所有的类都能序列化,实现java.io.Serializable

不是所有的属性都需要序列化 transient

静态的内容不能序列化

如果父类有实现序列化,子类没有,子类中的所有内容都能序列化

如果父类中没有实现序列化,子类有实现序列化,子类只能序列化自己的内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值