zoukankan      html  css  js  c++  java
  • SerializeUtil 序列化,反序列化工具类

    package cloud.app.prod.home.utils;
    
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.Closeable;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 序列化,反序列化工具类
     * 用于转换byte[]和对象
     * Author : YongBo Xie </br>
     * File Name: SerializeUtil.java </br>
     * Created Date: 2018年3月29日 下午6:36:49 </br>
     * Modified Date: 2018年3月29日 下午6:36:49 </br>
     * Version: 1.0 </br>
    */
    
    public class SerializeUtil {
        
        public static byte[] serialize(Object object) {
            ObjectOutputStream oos = null;
            ByteArrayOutputStream baos = null;
            try {
                // 序列化
                baos = new ByteArrayOutputStream();
                oos = new ObjectOutputStream(baos);
                oos.writeObject(object);
                byte[] bytes = baos.toByteArray();
                return bytes;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {  
                close(oos);  
                close(baos);  
            } 
            return null;
        }
    
        public static Object unserialize(byte[] bytes) {
            ByteArrayInputStream bais = null;
            ObjectInputStream ois = null;
            try {
                // 反序列化
                bais = new ByteArrayInputStream(bytes);
                ois = new ObjectInputStream(bais);
                return ois.readObject();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {  
                close(bais);  
                close(ois);  
            } 
            return null;
        }
        
        /** 
         * 序列化 list 集合 
         *  
         * @param list 
         * @return 
         */  
        public static byte[] serializeList(List<?> list) {  
      
            if (list == null || list.size() <= 0) {  
                return null;  
            }  
            ObjectOutputStream oos = null;  
            ByteArrayOutputStream baos = null;  
            byte[] bytes = null;  
            try {  
                baos = new ByteArrayOutputStream();  
                oos = new ObjectOutputStream(baos);  
                for (Object obj : list) {  
                    oos.writeObject(obj);  
                }  
                bytes = baos.toByteArray();  
            } catch (Exception e) {  
                e.printStackTrace();  
            } finally {  
                close(oos);  
                close(baos);  
            }  
            return bytes;  
        }  
      
        /** 
         * 反序列化 list 集合 
         *  
         * @param lb 
         * @return 
         */  
        public static List<?> unserializeList(byte[] bytes) {  
            if (bytes == null) {  
                return null;  
            }  
      
            List<Object> list = new ArrayList<Object>();  
            ByteArrayInputStream bais = null;  
            ObjectInputStream ois = null;  
            try {  
                // 反序列化  
                bais = new ByteArrayInputStream(bytes);  
                ois = new ObjectInputStream(bais);  
                while (bais.available() > 0) {  
                    Object obj = (Object) ois.readObject();  
                    if (obj == null) {  
                        break;  
                    }  
                    list.add(obj);  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            } finally {  
                close(bais);  
                close(ois);  
            }  
            return list;  
        }  
        
        /** 
         * 关闭io流对象 
         *  
         * @param closeable 
         */  
        public static void close(Closeable closeable) {  
            if (closeable != null) {  
                try {  
                    closeable.close();  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }
    View Code
  • 相关阅读:
    Django url
    Django 命令
    MVC和MTV模式
    pymysql操作
    mysql 基本操作
    jquery基本操作
    外边距内边距
    css
    Html
    __name__ __main__ 作用
  • 原文地址:https://www.cnblogs.com/BobXie85/p/8671613.html
Copyright © 2011-2022 走看看