应⽤场景:redis⽤String存储对象数据
1 public class ObjToByteUtil { 2
3 /**
4 * 对象转Byte数组 5 * @param obj 6 * @return 7 */
8 public static byte[] objToByteArray(Object obj) { 9 byte[] bytes = null;
10 ByteArrayOutputStream byteArrayOutputStream = null; 11 ObjectOutputStream objectOutputStream = null; 12 try {
13 byteArrayOutputStream = new ByteArrayOutputStream();
14 objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); 15 objectOutputStream.writeObject(obj); 16 objectOutputStream.flush();
17 bytes = byteArrayOutputStream.toByteArray(); 18 } catch (IOException e) {
19 System.err.println(\"objectToByteArray failed, \" + e); 20 } finally {
21 if (objectOutputStream != null) { 22 try {
23 objectOutputStream.close(); 24 } catch (IOException e) {
25 System.err.println(\"close objectOutputStream failed, \" + e); 26 } 27 }
28 if (byteArrayOutputStream != null) { 29 try {
30 byteArrayOutputStream.close(); 31 } catch (IOException e) {
32 System.err.println(\"close byteArrayOutputStream failed, \" + e); 33 } 34 } 35 }
36 return bytes; 37 } 38
39 /**
40 * Byte数组转对象 41 * @param bytes 42 * @return 43 */
44 public static Object byteArrayToObj(byte[] bytes) { 45 Object obj = null;
46 ByteArrayInputStream byteArrayInputStream = null; 47 ObjectInputStream objectInputStream = null; 48 try {
49 byteArrayInputStream = new ByteArrayInputStream(bytes);
50 objectInputStream = new ObjectInputStream(byteArrayInputStream); 51 obj = objectInputStream.readObject(); 52 } catch (Exception e) {
53 System.err.println(\"byteArrayToObject failed, \" + e); } finally {
55 if (byteArrayInputStream != null) { 56 try {
57 byteArrayInputStream.close(); 58 } catch (IOException e) {
59 System.err.println(\"close byteArrayInputStream failed, \" + e); 60 } 61 }
62 if (objectInputStream != null) { 63 try {
objectInputStream.close(); 65 } catch (IOException e) {
66 System.err.println(\"close objectInputStream failed, \" + e); 67 } 68 } 69 }
70 return obj; 71 } 72
73 public static Map 76 result.put(StringSerializer.toByteArray(entry.getKey()), objToByteArray(entry.getValue())); 77 } 78 return result; 79 } 80 81 public static Map 84 result.put(StringSerializer.fromByteArray(entry.getKey()), byteArrayToObj(entry.getValue())); 85 } 86 return result; 87 } 88 public static void main(String[] args) { 90 User user = new User(); 91 user.setAccount(\"zhangsan\"); 92 user.setName(\"张三\"); 93 94 byte[] obj2Byte = objToByteArray(user); 95 System.out.println(\"obj2Byte : \" + obj2Byte); 96 97 Object obj = byteArrayToObj(obj2Byte); 98 System.out.println(\"obj : \" + obj.toString()); 99 User u = (User) obj; 100 System.out.println(\"u.account : \" + u.getAccount() + \" u.name : \" + u.getName());101 }102 103 } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务