package org.pinae.timon.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * 对象工具集
 * 
 * @author Huiyugeng
 *
 */
public class ObjectUtils {
	
	/**
	 * 从字节数组转变为对象
	 * 
	 * @param objBytes 字节数组
	 * @return 对象
	 * @throws Exception 异常处理
	 */
	public static Object getObjectFromBytes(byte[] objBytes) throws Exception {
		if (objBytes == null || objBytes.length == 0) {
			return null;
		}
		ByteArrayInputStream bi = new ByteArrayInputStream(objBytes);
		ObjectInputStream oi = new ObjectInputStream(bi);
		return oi.readObject();
	}
	
	/**
	 * 从对象转变为字节数组
	 * 
	 * @param obj 对象
	 * @return 字节数组
	 * @throws IOException 异常处理
	 */
	public static byte[] getBytes(Object obj) throws IOException {
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		ObjectOutputStream oos = new ObjectOutputStream(bos);
		oos.writeObject(obj);
		oos.flush();
		oos.close();
		bos.close();
		byte[] data = bos.toByteArray();
		return data;
	}
	
	/**
	 * 计算对象长度
	 * 
	 * @param obj 需要计算长度的对象
	 * 
	 * @return 对象长度 (byte)
	 */
    public static int size(Object obj){
        if(obj==null) {
            return 0;
        }
        ByteArrayOutputStream buf = new ByteArrayOutputStream(4096);
        try{
	        ObjectOutputStream out = new ObjectOutputStream(buf);
	        out.writeObject(obj);
	        out.flush();
	        buf.close();
        }catch(IOException e){
        	return 0;
        }

        return buf.size();
    }
}

@@ -317,24 +317,29 @@
 jBytes %E5%AD%97%E8%8A%82%E6%95%B0%E7%BB%84%0A
+%09 * %0A
 %09 * @return 
@@ -338,18 +338,29 @@
 @return 
-%E5%AF%B9%E8%B1%A1
+%E5%AD%97%E8%8A%82%E8%BD%AC%E6%8D%A2%E5%90%8E%E7%9A%84%E5%AF%B9%E8%B1%A1%0A%09 * 
 %0A%09 * @th
@@ -718,18 +718,28 @@
 ram obj 
-%E5%AF%B9%E8%B1%A1
+%E9%9C%80%E8%A6%81%E8%BD%AC%E6%8D%A2%E7%9A%84%E5%AF%B9%E8%B1%A1%0A%09 * 
 %0A%09 * @re
@@ -744,24 +744,29 @@
 return %E5%AD%97%E8%8A%82%E6%95%B0%E7%BB%84%0A
+%09 * %0A
 %09 * @throws 

Update ObjectUtils