Object,byte[],ByteBuffer之间的转换

package cn.vicky.utils;   
  
import java.io.ByteArrayInputStream;   
import java.io.ByteArrayOutputStream;   
import java.io.IOException;   
import java.io.InputStream;   
import java.io.ObjectInputStream;   
import java.io.ObjectOutputStream;   
import java.nio.ByteBuffer;   
  
import org.apache.mina.core.buffer.IoBuffer;   
  
/**  
 * 对象序列化,反序列化(序列化对象转byte[],ByteBuffer, byte[]转object  
 *   
 * @author Vicky  
 * @email [email protected]  
 */  
public class ByteUtil {   
  
    public static byte[] getBytes(Object obj) throws IOException {   
        ByteArrayOutputStream bout = new ByteArrayOutputStream();   
        ObjectOutputStream out = new ObjectOutputStream(bout);   
        out.writeObject(obj);   
        out.flush();   
        byte[] bytes = bout.toByteArray();   
        bout.close();   
        out.close();   
        return bytes;   
    }   
  
    public static Object getObject(byte[] bytes) throws IOException, ClassNotFoundException {   
        ByteArrayInputStream bi = new ByteArrayInputStream(bytes);   
        ObjectInputStream oi = new ObjectInputStream(bi);   
        Object obj = oi.readObject();   
        bi.close();   
        oi.close();   
        return obj;   
    }   
  
    public static Object getObject(ByteBuffer byteBuffer) throws ClassNotFoundException, IOException {   
        // 需要mina框架的IoBuffer   
        IoBuffer buffer = IoBuffer.allocate(byteBuffer.capacity()).setAutoExpand(true); // 自动展开   
        for (int i = 0; i < byteBuffer.capacity(); i++) {   
            byteBuffer.position(i);   
            buffer.put(byteBuffer.get());   
        }   
        buffer.position(0);   
        InputStream input = buffer.asInputStream();   
        ObjectInputStream oi = new ObjectInputStream(input);   
        Object obj = oi.readObject();   
        input.close();   
        oi.close();   
        return obj;   
    }   
  
    public static ByteBuffer getByteBuffer(Object obj) throws IOException {   
        byte[] bytes = ByteUtil.getBytes(obj);   
        ByteBuffer buff = ByteBuffer.wrap(bytes);   
        return buff;   
    }   
  
}  



以上实现了Java之间的转换,关于Java与ActionScript之间的数据传输与转换。主要思想同上暂时不予讨论。。。

你可能感兴趣的:(java,apache,框架,Mina,actionscript)