Object序列化与返序列化

package com.mepu;

import org.junit.Test;

import java.io.*;

/**
 * @author: 艾康
 * @date: 2020/1/1 14:29
 * @description: TODO
 * @modifiedBy:
 * @version: 1.0
 * 对象流的序列化与反序列化
 */
public class ObjectIOTest {
    /*
    序列化
     */
    @Test
    public void test1(){
        ObjectOutputStream objectOutputStream = null;
        try {
            //创建字节流对象
            FileOutputStream fileOutputStream = new FileOutputStream("object.dat");
            //创建对象流
            objectOutputStream = new ObjectOutputStream(fileOutputStream);
            //存储对象,对象需要满足可序列化条件,所有用到的类实现Serializable接口,不能序列化static修饰的变量
            // 新增属性序列版本号:public static final long serialVersionUID=自定义值L;
            objectOutputStream.writeObject(new String("北京北京"));
            objectOutputStream.flush();//刷新
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭流
            try {
                objectOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /*
    反序列化
     */
    @Test
    public void test2() {
        ObjectInputStream objectInputStream = null;
        Object o = null;
        try {
            //创建文件对象
            FileInputStream fileInputStream = new FileInputStream("object.dat");
            //创建对象流
            objectInputStream = new ObjectInputStream(fileInputStream);
            //读取
            o = objectInputStream.readObject();
            System.out.println(o);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            //关闭流
            try {
                objectInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

原文地址:https://www.cnblogs.com/aikang525/p/12128975.html

时间: 2024-11-25 19:25:17

Object序列化与返序列化的相关文章

c#如何使用MemoryStream和BinaryFormatter进行对象的序列化和返序列化

1 下面是我写的一个序列化的类 public static class ObjSerialize { /// <summary> /// 将对象数组obj序列化,内存中的缓冲区的数据序列化 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static byte[] Serialize(object obj) {

C# 关于使用JavaScriptSerializer 序列化与返序列化的操作

//开始解析  //引用 //using System.Web.Script.Serialization; JavaScriptSerializer js = new JavaScriptSerializer(); Dictionary<string, Object> oList = js.DeserializeObject("Json字符串") as Dictionary<string, Object>; if (oList != null) { string

Atitit php序列化&#160;php的serialize序列化和json序列化

Atitit php序列化 php的serialize序列化和json序列化 PHP 对不同类型的数据用不同的字母进行标示,Yahoo 开发网站提供的Using Serialized PHP withYahoo! Web Services 一文中给出所有的字母标示及其含义:a - arrayb - booleand - doublei - integero - common objectr - references - stringC - custom objectO - classN - nu

[LeetCode] Serialize and Deserialize BST 二叉搜索树的序列化和去序列化

Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another comput

IOSerialize,xml和json,soap序列化器,二进制序列化器,XML序列化器,文件 检查、新增、复制、移动、删除

1 文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件3 三种序列化器4 xml和json1.文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件 using System.IO; /// <summary> /// 配置绝对路径 /// </summary> private static string LogPath = ConfigurationManager.AppSettings["LogPath&

[LeetCode] Serialize and Deserialize Binary Tree 二叉树的序列化和去序列化

Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another comput

[疯狂Java]I/O:I/O流的最高境界——对象流(序列化:手动序列化、自动序列化、引用序列化、版本)

1. 什么是对象流:序列化/反序列化的概念 1) 对象流是和字节流/字符流同处于一个概念体系的: a. 这么说字节流是流动的字节序列,字符流是流动的字符序列,那么对象流就是流动的对象序列咯? b. 概念上确实可以这样理解,对象流就是专门用来传输Java对象的: c. 但是字节和字符都是非常直观的二进制码(字节本身就是,而字符是一种二进制编码),二进制码的流动是符合计算机的概念模型的,可是对象是一个抽象的东西,对象怎么能像二进制码那样流动呢? d. 其实很好理解,对象流只不过是Java的API而已

C#大学课程(第五版)课后习题17.4序列化和去序列化

/*17.4 (序列化和去序列化)修改前面的程序,使其能利用可以被序列化和去序列化的类对象*/using System;[ Serializable ]class ClassGrade{ public string Last { get; set; } public string First { get; set; } public string Id { get; set; } public string Class { get; set; } public string Grade { ge

java编解码技术,json序列化与二进制序列化

1.何为json序列化与二进制序列化 通常我们在程序中采用的以json为传输,将json转为对象的就是json序列化了.而二进制序列化通常是我们将数据转换为二进制进行传输,然后在进行各类转换操作 2.适用场景 小编觉得当数据采用json传输的时候,适用与web与控制层的转换,前端js对json的支持较好,而程序内部系统与系统之间采用二进制序列化编码形式进行编码进行数据传输,这样可提高数据传输效率 3.优缺点 json序列化有点就是通俗易懂,常用,易于与前端交互,缺点就是没有二进制序列化后的数据传