栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

转换流,序列化和反序列化,transient关键字笔记

Java 更新时间:发布时间: 百科书网 趣学号

转换流 指定编码表
OutputStreamWrite   字符流向字节的桥梁  -编码
    使用步骤:
1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
2.使用OutputStreamWriter对象中的方法Write,把字符转换为字节存储缓冲区中(编码)
3.使用OutputStreamWriter对象中的方法flush ,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
4.释放资源
    
InputStreamReader    字节流向字符的桥梁  -解码
    使用步骤:
1.创建InputstreamReader对象,构造方法中传递字节输入流和指定的编码表名称
2.使用InputStreamReader对象中的方法read读取文件
3.释放资源
注意事项:
构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码
    

ObjectOutputStream 序列化流  ——对象的序列化流 写对象  
    writeObject();
    构造方法:
ObjectOutputStream(OutputStream out)创建写入指定OutputStream 的 ObjectOutputStream。参数:
OutputStream out:字节输出流
特有的成员方法:
void write0bject(Object obj)将指定的对象写入ObjectOutputStreamo
    使用步骤:
1.创建ObjectOutputStream对象,构造方法中传递字节输出流
2.使用ObjectOutputStream对象中的方法writeObject,把对象写入到文件中
3.释放资源
    
ObjectInputStream 反序列化流  ——读对象
    readObject();
    使用步骤:
1.创建ObjectInputStream对象,构造方法中传递字节输入流
2.使用ObjectInputStream对象中的方法read0bject读取保存对象的文件
3.释放资源
4.使用读取出来的对象(打印)
readObject方法声明抛出了classNotFoundException(class文件找不到异常)当不存在对象的class文件时抛出此异常
反序列化的前提:
1.类必须实现serializable2.必须存在类对应的cLass文件
    

序列化和反序列化的时候,会抛出NotSerializableException没有序列化异常
类通过实现java.io.Serializable接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。
Serializable接口也叫标记型接口
要进行序列化和反序列化的类必须实现Serializable接口,就会给类添加一个标记
当我们进行序列化和反序列化的时候,就会检测类上是否有这个标记
有:就可以序列化和反序列化
没有:就会抛出 NotSerializabLeException异常
去市场买肉-->肉上有一个蓝色章(检测合格)-->放心购买-->买回来怎么吃随意


static关键字:静态关键字
静态优先于非静态加载到内存中((静态优先于对象进入到内存中)被static修饰的成员变量不能被序列化的,
序列化的都是对象private static int age;

transient关键字:瞬态关键字
被transient修饰成员变量,不能被序列化

 

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1065110.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号