zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    

      

  • 相关阅读:
    LLDB 常用的调试命令
    iOS https认证
    pod lib lint xxx.podspec 验证出错 Could not find a `ios` simulator
    LLDB 调试
    First throw call stack: 不打印方法名
    AOP
    增强现实
    2017
    iOS的主要框架介绍 (转载)
    iOS中都有什么设计模式?各个设计模式的作用 (转载)
  • 原文地址:https://www.cnblogs.com/yanqin/p/8342839.html
Copyright © 2011-2022 走看看