zoukankan      html  css  js  c++  java
  • byte[]与Object转化,hessian序列化/反序列化

    【1】Object >> byte[].

    约束:该对象必须可序列化,且其包含的各属性对象,也必须可序列化

    注意:注释掉的部分为hessian实现方式

     

        public static byte[] objectToBytes(Object obj){
            byte[] result = null;
            ByteArrayOutputStream byteOutputStream = null;
            ObjectOutputStream objectOutputStream = null;
           
    //        Hessian2Output objectOutputStream2 = null;
           
            try{
                byteOutputStream = new ByteArrayOutputStream();
                objectOutputStream = new ObjectOutputStream(byteOutputStream);
               
                objectOutputStream.writeObject(obj);
                objectOutputStream.flush();
               
    //            objectOutputStream2.startMessage();
    //            objectOutputStream2.writeObject(obj);
    //            objectOutputStream2.completeMessage();
               
                result = byteOutputStream.toByteArray();
            }catch(Exception e){
                e.printStackTrace();
            } finally {
                if(null != objectOutputStream){
                    try{
                        objectOutputStream.close();
                        byteOutputStream.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }     
           
            return result;
        }

     

    【2】byte[] >> Object

    约束:如果byte[]里的类型与所转类型不同,则会抛异常java.lang.ClassCastException

    注意:注释掉的部分为hessian实现方式

     

        public static Object bytesToObject(byte[] bytes){
           
            Object result = null;
            ByteArrayInputStream byteInputStream = null;
            ObjectInputStream objectInputStream = null;
           
    //        Hessian2Input objectInputStream2 = null;
           
            try{
                byteInputStream = new ByteArrayInputStream(bytes);
                objectInputStream = new ObjectInputStream(byteInputStream);
               
                result = objectInputStream.readObject();
               
    //            objectInputStream2.startMessage();
    //            result = objectInputStream2.readObject();
    //            objectInputStream2.completeMessage();
               
            }catch(Exception e){
                e.printStackTrace();
            }finally {
                if(null != objectInputStream){
                    try{
                        objectInputStream.close();
                        byteInputStream.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
           
            return result;
        }

  • 相关阅读:
    【工具】模板引擎 Velocity
    【Android】Android 彩信发送的两种方式+源代码
    【Win7】 建立无线局域网实现共享上网
    【Android】java.net.SocketException: Permission denied解决
    Android中使用Post请求(网友版)
    Android通过post请求发送一个xml,解析返回xml数据
    学用MVC4做网站六后台管理:6.1管理员
    学用MVC4做网站六:后台管理
    html5的新增的标签和废除的标签
    HTML5新增的属性和废除的属性
  • 原文地址:https://www.cnblogs.com/alipayhutu/p/2563556.html
Copyright © 2011-2022 走看看