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;
        }

  • 相关阅读:
    关于oracle的导入数据流程,以及错误解决
    解决 lombok 和 freemarker 下载慢问题 以及安装方法
    解决maven项目没有Maven Dependencies
    将maven仓库改为阿里仓库
    Dos攻击和校网渗透
    KaliLinux切换python版本
    Kali国内更新源
    linux安装jdk(.rpm)
    Centos 关于 mysql 命令
    Linux删除命令
  • 原文地址:https://www.cnblogs.com/alipayhutu/p/2563556.html
Copyright © 2011-2022 走看看