首页 > 编程语言 >java随笔(六)——对象序列化

java随笔(六)——对象序列化

时间:2022-09-04 16:47:22浏览次数:51  
标签:随笔 ObjectOutputStream ObjectInputStream 对象 Student new java 序列化

ObjectOutputStream(对象输出流,序列化)

通过ObjectOutputStream可以将所需要存储的对象数据进行序列化再输出存储。
例如:

Student s = new Student("张三",19);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(路径));
oos.writeObject(s);

序列化的前提是被序列化对象的类,必须实现Serializable接口

ObjectOutputStream(对象输入流,反序列化)

通过ObjectInputStream可以将所需要输入的序列化对象进行反序列化再输入使用。
例如:

ObjectInputStream ois = new ObjectOutputStream(new FileInputStream(路径));
Student stu = (Student)ois.readObject();

因为读取的是Object类的对象,所以这里要进行向下转型(类型强转)。

对象序列化流问题

用对象序列化流序列化一个对象后,假如我们修改对象所属的类文件,再读取数据时会抛出异常。
这个问题可以通过在对象所属类中,定义serialVersionUID字段来进行解决,如下所示:

private static final long serialVersionUID = 66L;

当我们不想要类中的某个属性被序列化时,可以通过transient关键字进行修饰。例如:

private transient int age;

标签:随笔,ObjectOutputStream,ObjectInputStream,对象,Student,new,java,序列化
From: https://www.cnblogs.com/maplerain/p/16655250.html

相关文章

  • Java中的方法
    方法的定义定义方法的格式修饰符返回值类型方法名(参数类型){***}修饰符访问控制修饰符publicprivateprotected当父类声明为public时,子类必须为public当父类声......
  • 《Java编程思想》读书笔记(四)
    前言:三年之前就买了《Java编程思想》这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第十七章到第十......
  • Java流程控制
    01用户交互Scanner我们通过Scanner类获取用户的输入。基本语法:Scanners=newScanner(System.in);通过Scanner类的next()或nextLine()方法来获取输入的字符串,再读......
  • JavaDoc注释
    生成API文档时的参数信息@author作者名@version版本号@since最早可使用的jdk版本@param参数名@return返回值@throws抛出异常生成自己的API说明文档使用CMD方......
  • C++随笔cout.precision(n)的作用
    是C++输出函数cout的一个格式控制函数,用以控制输出数据的精度(保留小数点后几位)...cout.precision(n);...用于控制小数输出位数,例如a=1.2345;cout.precision(2)......
  • 第十章-JavaScript 互操作性
    从C#调用JavaScript浏览器具有许多您可能希望在Blazor网站中使用的功能。例如,您可能希望使用浏览器的本地存储来跟踪某些数据。由于Blazor的JavaScript互操作性......
  • java学习笔记019 JDK 8新特性
    1.Lambda表达式eg1: //原始写法 Runnabler1=newRunnable(){ @Override publicvoidrun(){ System.out.println("helloworld"); } } r1.run(); //Lamb......
  • Java中Iterator和ListIterator用法整理
    1 迭代器简介(Iterator)迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建......
  • 使用DES算法的加解密Java工具类-字符串加解密
    importjavax.crypto.*;importjavax.crypto.spec.DESKeySpec;importjava.security.SecureRandom;importorg.apache.commons.codec.binary.Base64;/***@ClassN......
  • Java中计算两个时间相差多少天,时,分,秒
    importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.time.LocalDate;importjava.util.Date;StringstrTime1="2020-12-0412:20:2......