序列化和反序列化 工具类

序列化和反序列化 工具类

序列化

下面直接将序列化和反序列化,直接集成方法,可以直接使用

MySerializable.mySerializable(obj,fileName);

MySerializable.myDeserializable(obj,fileName)

项目上建立一个Util 包用来包含 序列化和反序列化工具,如图:

请添加图片描述

package Util;

import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * @program: IO 流
 * @description: 序列化和反序列化工具类
 *		fileName  比如:   我.txt
 * @author: 白嫖怪AE
 * @create: 2021-11-21 15:27
 **/
public class MySerializable {
    /**
     *  将对象序列化到指定文件中
     * @param obj
     * @param fileName
     * */
    public static void mySerializable(Object obj,String fileName) throws IOException {
        // 序列化
        OutputStream outputStream = new OutputStream(fileName);
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
        objectOutputStream.writeObject(obj);
        objectOutputStream.close();

    }

    /**
     *  从指定文件中反序列化对象
     * @param fileName
     * @return
     * */
    public static Object myDeserializable(String fileName) throws IOException,ClassNotFoundException{
        // 反序列化
        InputStream inputStream = new FileInputStream(fileName);
        ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
        Object object = objectInputStream.readObject();
        return object;

    }
}

一个真实项目的 序列化和反序列化工具的例子

package com.pojo.Util;

import java.io.*;

/**
 * @program: ***********
 * @description: 文件读写的工具类:方法都推荐静态
 * @author: @景
 * @create: 2021-6-12 17:06
 **/
public class IO_Util {
    /**
     *  从指定的文件中读取数据,即反序列化
     * @param fileName
     * @return
     * */
    public static Object readFile(String fileName) throws IOException, ClassNotFoundException {
        //  找到对应 fileName 文件, 通过字节流拿到 ObjectInputStream.readObject(); 数据
        FileInputStream fileInputStream = new FileInputStream(fileName);
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        return objectInputStream.readObject();
    }

    /**
     *  写入数据到指定文件中
     * @param obj
     * @param fileName
     * */
    public static void writeFile(Object obj,String fileName) throws IOException {
        // 根据  把数据 写入 fileName 文件中
        FileOutputStream fileOutputStream = new FileOutputStream(fileName);
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
        // obj 数据
        objectOutputStream.writeObject(obj);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值