派生自 projectDept/qhighschool

Administrator
2022-11-29 8c99e2d8b6c1e0d9cde6abbe80b4df75be19f6d1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.qxueyou.scc.base.util;
 
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
 
import org.apache.commons.io.IOUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
/**
 * ÐòÁл¯¹¤¾ßÀà
 * @author µÂ»¢
 *
 */
public class SerializeUtils {
    
    private static Logger log = LogManager.getLogger("SerializeUtils");
 
    /**
     * ½«¶ÔÏóת»»Îª×Ö½ÚÊý×é
     * @param obj ¿ÉÐòÁл¯µÄ¶ÔÏó
     * @return ×Ö½ÚÊý×é
     */
    public static byte[] toByteArrayFromObject(Object obj){
        
        if(!(obj instanceof Serializable)){
            return new byte[0];
        }
        
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        ObjectOutputStream oo = null;
        
        try {
            
            oo = new ObjectOutputStream(bo);
            
            oo.writeObject(obj);
            
            return bo.toByteArray();
            
        } catch (IOException e) {
            log.error(e,e);
        } finally{
            IOUtils.closeQuietly(oo);
        }
        
        return new byte[0];
        
    }
    
    /**
     * ½«×Ö½ÚÊý×éΪ¶ÔÏóת»»
     * @param data ×Ö½ÚÊý×é
     * @param cls Òª×ª»¯µÄ¶ÔÏóÀàÐÍ
     * @return Òª×ª»¯µÄ¶ÔÏó
     */
    public static <T> T toObjectFromByte(byte[] data,Class<T> cls){
        
        ByteArrayInputStream bi = new ByteArrayInputStream(data);
        ObjectInputStream oi = null;
        
        try {
            
            oi = new ObjectInputStream(bi);
            
            Object obj = oi.readObject();
            
            return cls.cast(obj);
            
        } catch (IOException e) {
            log.error(e,e);
        } catch (ClassNotFoundException e) {
            log.error(e,e);
        } finally{
            IOUtils.closeQuietly(oi);
        }
        
        return null;
    }
}