zoukankan      html  css  js  c++  java
  • java对象序列化byte[] and byte[]反序列化对象--转

    import java.io.ByteArrayInputStream;   
    import java.io.ByteArrayOutputStream;   
    import java.io.IOException;   
    import java.io.ObjectInputStream;   
    import java.io.ObjectOutputStream;   
     
      
    public class ObjectAndByte {   
      
        /**  
         * 对象转数组  
         * @param obj  
         * @return  
         */  
        public byte[] toByteArray (Object obj) {      
            byte[] bytes = null;      
            ByteArrayOutputStream bos = new ByteArrayOutputStream();      
            try {        
                ObjectOutputStream oos = new ObjectOutputStream(bos);         
                oos.writeObject(obj);        
                oos.flush();         
                bytes = bos.toByteArray ();      
                oos.close();         
                bos.close();        
            } catch (IOException ex) {        
                ex.printStackTrace();   
            }      
            return bytes;    
        }   
           
        /**  
         * 数组转对象  
         * @param bytes  
         * @return  
         */  
        public Object toObject (byte[] bytes) {      
            Object obj = null;      
            try {        
                ByteArrayInputStream bis = new ByteArrayInputStream (bytes);        
                ObjectInputStream ois = new ObjectInputStream (bis);        
                obj = ois.readObject();      
                ois.close();   
                bis.close();   
            } catch (IOException ex) {        
                ex.printStackTrace();   
            } catch (ClassNotFoundException ex) {        
                ex.printStackTrace();   
            }      
            return obj;    
        }   
           
        
    }

    问题:

    bytes在反序列化为Object的前提是byte[]是通过ObjectOutputStream序列化的,否则直接将一个任意的byte[]转换成Object时会报错,错误信息为:

    java.io.StreamCorruptedException: invalid stream header: EFBFBDEF

    转自--https://my.oschina.net/drl/blog/719211

  • 相关阅读:
    ffplay代码播放pcm数据
    linux设备驱动
    i2c协议
    macos安裝Ruby
    mac安裝node.js
    Flutter-Wrap流式布局
    Flutter-CircleAvatar圆形和圆角图片
    Flutter-indexstack
    Flutter-Card卡片布局
    Flutter-去除ListView滑動波紋
  • 原文地址:https://www.cnblogs.com/huhuuu/p/5999171.html
Copyright © 2011-2022 走看看