首页 > 其他分享 >序列化与反序列化

序列化与反序列化

时间:2022-08-30 15:01:36浏览次数:53  
标签:System Student println new 序列化 out

image

1.参与序列化的对象必须实现Serializable接口,起到相应的标识作用,Java虚拟机会给该类自动生成一个序列化版本号
2. java通过类名+序列化版本号的方式进行区分,transient关键字描述的属性不参与序列化

package com.javastudy.example10;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class ObjectOut_In_Stream {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        Student s1=new Student("1","h",22);
        //序列化
        /*
        参与序列化的对象必须实现Serializable接口,起到相应的标识作用,Java虚拟机会给该类自动生成一个序列化版本号
        java通过类名+序列化版本号的方式进行区分,transient关键字描述的属性不参与序列化
        */
        ObjectOutputStream oop=new ObjectOutputStream(new FileOutputStream("ObjectOut_In_Stream_test"));
        oop.writeObject(s1);
        oop.flush();
        oop.close();
        System.out.println("序列化结束!!!");
        System.out.println("开始反序列化!!!");
        //反序列化
        ObjectInputStream ooi=new ObjectInputStream(new FileInputStream("ObjectOut_In_Stream_test"));
        Object obj = ooi.readObject();
        System.out.println(obj);
        ooi.close();
        System.out.println("反序列化结束!!!");
        System.out.println("===========================以下为批量序列化与反序列化============================");
        //一次性序列化多个对象
        List<Student> list=new ArrayList<>();
        list.add(new Student("2","z",23));
        list.add(new Student("3","k",24));
        list.add(new Student("4","l",25));
        ObjectOutputStream oopmore=new ObjectOutputStream(new FileOutputStream("MoreObjectOut_In_Stream_test"));
        oopmore.writeObject(list);
        oopmore.flush();
        oopmore.close();
        //反序列化
        ObjectInputStream ooimore=new ObjectInputStream(new FileInputStream("MoreObjectOut_In_Stream_test"));
        List<Student> list1=(List<Student>)ooimore.readObject();
        for (Student student:list1) {
            System.out.println(student);
        }
        ooimore.close();
    }
}

运行结果
image

标签:System,Student,println,new,序列化,out
From: https://www.cnblogs.com/hzxiang/p/16639325.html

相关文章

  • [CISCN2019 华北赛区 Day1 Web2]ikun-1|python反序列化
    考点:JWT身份伪造、pythonpickle反序列化、逻辑漏洞1、打开之后首页界面直接看到了提示信息,信息如下:2、那就随便注册一个账号进行登录,然后购买lv6,但是未发现lv6,那就查看......
  • maybe_serialize() | WordPress序列化数据/数组/对象
    函数maybe_serialize(string|array|object$data)描述该WordPress函数可将数组/对象/字符串序列化。参数$data,(string|array|object)需要序列化的数据。返回值(m......
  • drf的序列化
    1.序列化的基类BaseSerializerfromrest_frameworkimportserializersserializers.BaseSerializer2.基本序列化类Serializer,继承于BaseSerializerfromrest_fram......
  • 序列化和反序列化
    序列化方式说明二进制序列化器:序列化结果人看不懂,但是序列化后体积小soap序列化器:人能看懂,没啥阅读体验,文件体积比较大xml序列化器:可阅读性好,体积中等序列化为......
  • 序列化与反序列化
    参考视频:153、序列化和反序列化哔哩哔哩bilibili序列化版本说明参考地址:(18条消息)序列化版本号(serialVersionUID)是做什么用的鲱鱼罐头配白花蛇草水的博客-CSDN博客seria......
  • CTFSHOW Web259 SoapClient原生类的反序列化
      index.php   看到该题目第一眼,大脑直接一个简单的想法就是通过访问flag.php添加X-Forwarded-For然后POST发送token数据。但!在本题的环境当中,由于使用了Clou......
  • rest_framework:序列化器类
    一.序列化器类序列化就是把数据转换为json在服务端发送到客户端反序列化是客户端法的数据发送到服务端服务端通过反序列化把数据转换为jsonfromrest_frameworkimp......
  • 面试题:Java序列化与反序列化
    目录序列化和反序列化的概念应用场景?序列化实现的方式继承Serializable接口,普通序列化继承Externalizable接口,强制自定义序列化serialVersionUID的作用静态变量不会被序列......
  • DRF当中序列化器中通过重写create()来实现保护登录保护
    在DRF原来源码框架中,我们知道保存的用户信息时,用户的密码是被明文保存到数据库中。代码实classUserRegisterModelSerializer(serializers.ModelSerializer)   """......
  • 序列化和反序列化
    序列化:把对象变成字符串。一般对象和json格式一样。反序列化:把json字符串转化为对象类型。 参考资料:C#JsonConvert.DeserializeObject反序列化与JsonConvert.Serial......