1-5.IO流/序列化

IO流

流只能单方向流动
输入流用来读取 → in
输出流用来写出 → out
数据只能从头到尾顺序的读写一次

在这里插入图片描述

IO流的继承结构

根据流的方法不同分为:
输入流和输出流
根据处理的数据单位不同分为:
字节流 : 针对二进制文件
字符流 : 针对文本文件,读写容易出现乱码的现象,在读写时,最好指定编码集为UTF-8

创建对象

File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新的File实例

new File(“d:/abc/a.txt”);
new File(“d:/abc”,”a.txt”);

常用方法

File f = new File(“d:/abc/a.txt”);
f.length()  		字符数
f.exists()    		是否存在
f.isFile()        	是否是文件
f.isDirectory()     是否是文件夹
f.getName()  	    获得文件名
f.getParent()    	获得父级目录
f.getAbsolutePath( )获得绝对路径
f.createNewFile( )  创建文件
f.mkdir()    		创建文件夹
f.mkdirs()  		创建多个文件夹
f.delete()    		删除空文件夹/文件
f.list()      		文件列表
f.listFile( ) 
组合流
字节输入流:
InputStream 抽象类,不能new,可以作为超类,学习其所提供的共性方法
--FileInputStream 子类,操作文件的字节输入流,普通类
--BufferedInputStream 子类,缓冲字节输入流,普通类
4.字符输入流
Reader 抽象类,不能new,可以作为超类,学习其所提供的共性方法
--FileReader,子类,操作文件的字符输入流,普通类
--BufferedReader,子类,缓冲字符输入流,普通类
5.字节输出流:
OutputStream 抽象类,不能new,可以作为超类,学习其所提供的共性方法
--FileOutputStream 子类,操作文件的字节输出流,普通类
--BufferedOutputStream 子类,缓冲字节输出流,普通类
6.字符输出流
Writer 抽象类,不能new,可以作为超类,学习其所提供的共性方法
--FileWriter,子类,操作文件的字符输出流,普通类
--BufferedWriter,子类,缓冲字符输出流,普通类

序列化和反序列化

序列化:利用ObjectOutputStream,
把对象的信息,按照固定的格式转成一串字节值输出并持久保存到磁盘
反序列化:利用ObjectInputStream,
读取磁盘中之前序列化好的数据,重新恢复成对象

注意:
需要序列化的文件必须实现Serializable接口,用来启用序列化功能
不需要序列化的数据可以修饰成static,原因:static资源属于类资源,不随着对象被序列化输出
每一个被序列化的文件都有一个唯一的id,如果没有添加此id,编译器会自动根据类的定义信息计算产生一个
在反序列化时,如果和序列化的版本号不一致,无法完成反序列化
常用与服务器之间的数据传输,序列化成文件,反序列化读取数据

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值