【转载】java对象和byte数组互转,直接拿去用

本文介绍了一种使用Java将对象转换为字节流的方法,通过ByteArrayOutputStream和ObjectOutputStream实现对象到字节流的序列化,再通过ByteArrayInputStream和ObjectInputStream完成字节流到对象的反序列化。此方法利用了Optional泛型来避免空指针异常,提高了代码的安全性和健壮性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//加了了Optional防止空指针异常,加入了泛型,省去了强制转化
 1 import java.io.*;
 2 import java.util.Optional;
 3 
 4 /**
 5  * Created by Jason on 2017/1/3.
 6  */
 7 public class ByteArrayUtils {
 8 
 9     public static<T> Optional<byte[]> objectToBytes(T obj){
10         byte[] bytes = null;
11         ByteArrayOutputStream out = new ByteArrayOutputStream();
12         ObjectOutputStream sOut;
13         try {
14             sOut = new ObjectOutputStream(out);
15             sOut.writeObject(obj);
16             sOut.flush();
17             bytes= out.toByteArray();
18         } catch (IOException e) {
19             e.printStackTrace();
20         }
21         return Optional.ofNullable(bytes);
22     }
23 
24     public static<T> Optional<T> bytesToObject(byte[] bytes) {
25         T t = null;
26         ByteArrayInputStream in = new ByteArrayInputStream(bytes);
27         ObjectInputStream sIn;
28         try {
29             sIn = new ObjectInputStream(in);
30             t = (T)sIn.readObject();
31         } catch (Exception e) {
32             e.printStackTrace();
33         }
34         return Optional.ofNullable(t);
35 
36     }
37 }
38 --------------------- 
39 作者:idealemail 
40 来源:优快云 
41 原文:https://blog.youkuaiyun.com/idealemail/article/details/53993872 
42 版权声明:本文为博主原创文章,转载请附上博文链接!

 

  

转载于:https://www.cnblogs.com/chaos-li/p/9831104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值