5.7-5.9java学习笔记-文件处理

文件对象的使用

File:文件对象,用于表示磁盘上的文件夹或数据文件

IO数据流的使用

: 水流(有方向,有基本的构成单位:水滴),车流(有方向,基本单位:车)

数据流:以字节或字符为单位按特定的方向传送就构成了数据流。

流的分类

 

输入输出字节流的使用

字节流

 

输入字节流

抽象类:InputStream 程序可以从目标中连续读取字节的对象称为字节输入流

实现类:FileInputStream

输出字节流

抽象类:OutputStream 程序可以向其中连续写入字节的对象称为字节输出流

实现类:FileOutputStream

 流的使用步骤:

缓冲字节流(处理流/包装流)

缓冲流:缓冲流是一个处理流,在普通流的基础上添加了缓冲区,能够在传输数据的时候提升读取或写入效率。

好处:

​ 1.不带缓冲的流读取到一个字节或字符就直接输出

​ 2.带有缓冲的流读取到一个字节或字符先不输出,等达到缓冲区容量再一次性写出

对象流(处理流/包装流)

idea自动生成序列化id的配置

File---》settings---》Editor--》 inspections--》java---》Serialization issues---》Serializable class without 'serialVersionUID'---》打对勾。

序列化版本号的使用:

  1. 在类上加序列化版本号定义:serialVersionUID
  2. 序列化对象到磁盘上
  3. 修改类:添加属性
  4. 反序列化,此时能正常处理

对象流:可以将内存中的对象数据序列化到磁盘文件中

  • ObjectInputStream 将文件中的对象读取到程序中。
  • ObjectOutputStream 将程序中的对象写入到文件中。

序列化和反序列化 Serializable 实现

  • 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。比如:存储游戏进度,下次再接着玩
  • 反序列化:反向操作。将数据从存储状态恢复到内存中。
注意:1.如果要将一个对象序列化到磁盘上,那么该对象必须实现Serializable接口    
2.为了保证类的一致性,需要在类中定义版本序列号serialVersionUID    
3.如果类中某个属性不需要序列化,则可以给该字段标记transient

字符流

字符流:以字符为基本单位进行数据的传输

输入字符流

抽象类:Reader

实现类:FileReader

输出字符流

抽象类:Writer

实现类:FileWriter

 

缓冲字符流

BufferedReader: 缓冲字符输入流

BufferedWriter: 缓冲字符输出流

字节字符转换流(处理流/包装流)

InputStreamReader 将字节输入流转换成字符输入流

OutputStreamWriter 将字符输出流转为字节输出流

InputStreamReader(InputStream in); 将读取的字节流抓换成字符流

OutputStreamWriter(outPutStream os);将书写的字符流转换成字节流写到文件里。

InputStreamReader(InputStream in,"gb2312"); //将读取的字节流抓换成字符流,可以指明编码格式

OutputStreamWriter(outPutStream os,"utf-8"); //将书写的字符转换成字节流——可以指明编码格式

转换流就是对字节流的封装,将字节流封装成一个字符流,可以指明编码格式。字符流要关闭。

默认按照GBK的编码转化。

注意:字节流可以用来操作所有文件,字符流操作文本文件!

格式化打印流(对于输出流的功能进行增强)

PrintWriter: 是Writer的子类,其作用是将格式化对象打印到一个文本输出流, 主要方法:print()、println()、write()

Properties文件的使用

a. 创建.properties文件

b. 创建Properties类对象,加载.properties文件

c. 访问属性文件中的键值对数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值