• Java 序列化工具类


    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;
    
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    
    /**
     * 序列化工具类
     */
    public class SerializeUtil {
        private final static Logger logger = LoggerFactory.getLogger(SerializeUtil.class);
    
        public static String serialize(Object object) {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ObjectOutputStream oos = null;
            try {
                oos = new ObjectOutputStream(bos);
                oos.writeObject(object);
                oos.flush();
                return new BASE64Encoder().encode(bos.toByteArray());
            }catch (IOException e) {
                logger.error("序列化错误",e);
            }finally {
                try {
                    if (oos != null) {
                        oos.close();
                    }
                    bos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }
    
        public static Object unserialize( String object) {
            ByteArrayInputStream bis = null;
            ObjectInputStream ois = null;
            try {
                bis = new ByteArrayInputStream(new BASE64Decoder().decodeBuffer(object));
                ois = new ObjectInputStream(bis);
                Object o = ois.readObject();
                return o;
            } catch (IOException e) {
                logger.error("反序列化错误:IO异常",e);
            } catch (ClassNotFoundException e) {
                logger.error("反序列化错误:类找不到",e);
            }finally {
                try {
                    if(bis!=null) {
                        bis.close();
                    }
                    if(ois!=null){
                        ois.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }
    }
    

      

  • 相关阅读:
    python基础之数据类型
    简单猜年龄游戏
    python基础之变量
    Python3获取大量电影信息:调用API
    10分钟制作UWP汉堡菜单
    java 异常处理
    多态
    接口与继承
    数组及课后动手动脑
    String类型
  • 原文地址:https://www.cnblogs.com/yanqin/p/8342839.html
Copyright © 2020-2023  润新知