Java: IO

一切皆为字节流

一、字节输出流

java.io.OutputStream:此抽象类是表示输出字节流的所有类的超类。
定义了一些子类共性的成员方法:
在这里插入图片描述
tips:
close方法,当完成流的操作时,必须调用此方法,释放系统资源

文件字节输出流

在这里插入图片描述

写入数据的原理(内存到硬盘)

Java程序–> jvm(java虚拟机)–> OS --> OS调用写数据的方法 --> 把数据写入到文件中

字节输出流使用步骤(重点)

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

追加写与续写
在这里插入图片描述

二、字节输入流

在这里插入图片描述
读取数据原理
Java程序 --> JVM --> os --> OS读取数据的方法 -->读取方法

字节输入流使用步骤
在这里插入图片描述

字节输入流一次读取多个字节的方法
在这里插入图片描述

三、字符流

字符输入流

Java.io.Reader:字符输入流,是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类。

共性的成员方法:

在这里插入图片描述

FileReader:文件字符输入流
作用:把硬盘文件中的数据以字符的方式读取到内存中。
在这里插入图片描述

字符输入流的使用步骤
在这里插入图片描述

字符输出流

java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类。
共性的成员方法:
在这里插入图片描述
FileWriter:文件字符输出流
作用:把内存中的字符数据写入到文件中

构造方法:
在这里插入图片描述

字符输出流的使用步骤:
在这里插入图片描述

flush方法与close方法:
在这里插入图片描述

在这里插入图片描述

Properties集合

java.util.Properties集合,表示了一个持久的属性集,可保存在流中或从流中加载。
Properties集合是一个唯一和IO流相结合的集合
1.可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入硬盘中存储。
2.可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用

属性列表中每一个Key以及对应值都是一个字符串。
1.Properties集合是一个双列集合,key和value默认都是字符串

作用: 广泛运用在与jdbc交互。数据以键值对的形式交互。
取值方法:
在这里插入图片描述
Properties方法store
在这里插入图片描述
Properties方法load
在这里插入图片描述

字节缓冲流

给基本的字节输入流增加一个 缓冲区(数组) 提高基本的字节输入流的读取效率

在这里插入图片描述
共性成员方法,构造方法,使用步骤
在这里插入图片描述
字符缓冲输入输出流
BufferedWriter
BufferedReader

转换流

编码表

字符集
在这里插入图片描述

在这里插入图片描述

转换流原理
在这里插入图片描述

OutputStreamWriter
是字符流通向字节流的桥梁,可使用指定的charset将要写入流中的字符编码或字节(编码:把能看懂的变成看不懂的)

共性方法,构造方法,使用步骤:
在这里插入图片描述

序列化

序列化: 把对象以流的方式,写入到文件中保存,叫写对象,也叫对象的序列化。
对象中包含的不仅只有字符,所以用字节流输出
ObjectOutputStream:对象的序列化流

反序列化: 把文件中保存的对象,以流的方式读取出来,叫做读对象,也叫对象的反序列化。
读取文件保存的都是字节,所以使用字节流输入
ObjectInputStream:对象的反序列化流。

序列化构造方法,成员方法,使用步骤:
在这里插入图片描述
NotSerializableException异常
在这里插入图片描述

IO流整体框架脑图
https://pic2.zhimg.com/v2-adf9568db6289098b6db2a469b44aa5d_r.jpg?source=1940ef5c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值