【Java基础系列】二进制与对象之间的转换
2023-09-27 14:29:25 时间
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kuan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
对象和二进制转换工具类
/**
* 对象和二进制转换工具类(参考: 深度克隆). 把一个对象存入redis的缓存的时候需要把对象(要求对象实现序列化接口)转成二进制数组,
* 从redis缓存中吧数据取出的时候是一个二进制数据组对象, 所以需要把二进制数据转换成原来的对象.
*
* @author LSZ
*/
@Slf4j
public final class DeepClone {
private DeepClone() {
}
/**
* 把对象转变成二进制
*
* @param obj 待转换的对象
* @return 返回二进制数组
*/
public static byte[] writeInto(Object obj) {
ByteArrayOutputStream bos = null;
ObjectOutputStream oos = null;
try {
bos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(bos);
//读取对象并转换成二进制数据
oos.writeObject(obj);
return bos.toByteArray();
} catch (IOException e) {
log.warn("对象转换成二级制数据失败, {}", e);
} finally {
if (oos != null) {
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
/**
* 把二进制数组的数据转回对象
*
* @param b
* @return
*/
public static Object restore(byte[] b) {
ByteArrayInputStream bis = null;
ObjectInputStream ois = null;
try {
//读取二进制数据并转换成对象
bis = new ByteArrayInputStream(b);
ois = new ObjectInputStream(bis);
return ois.readObject();
} catch (ClassNotFoundException | IOException e) {
log.warn("二进制数据转回对象失败, {}", e);
} finally {
if (ois != null) {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}
觉得有用的话点个赞 👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
相关文章
- Java面试之http知识点(必问)
- 使用lombok的@Builder的注解:Error:java: 无法将类中的构造器应用到给定类型
- Java开发如何通过IoT边缘ModuleSDK进行协议转换?
- java-工具类-读取配置文件
- 框架开发之Java注解的妙用
- java-BigDecimal百位取整和科学记数法转换
- 最大连续子数组和(Java)
- 为什么说 Java 中只有值传递?
- 精品基于java开发的航空订票系统SSM
- Java Web-servlet、HTTP in servlet和捎带的Java绘图学习
- Java实现Unicode和中文相互转换
- java常用string inputStream转换
- 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.5 其他的流转换
- 【Java】java 性能监控及工具
- 转:Java中String与byte[]的转换
- Java 基础——List 与数组、Map 相互转换
- 百度校招历年经典面试题汇总:Java开发岗
- JAVA实现输入年份判断是否是闰年
- Java 练习(将字符串中指定部分进行反转)
- Java 基础(获取随机数, switch-case 结构)
- SPARK 使用Java 在IDE中实战RDD和DataFrame动态转换操作
- JAVA HTTP请求 常用的代理设置
- JAVA(三)JAVA常用类库/JAVA IO
- 基于Java实现Json文件转换为Excel文件
- 1092 最好吃的月饼(JAVA)
- CentOS 7 安装java
- 通过反射将一个java对象的属性值转换为一个Map
- 在Java中怎样把数组转换为ArrayList?
- LeetCode-108. 将有序数组转换为二叉搜索树(java)
- Java学习小结(1)-数组的创建与传参
- 【Mysql系列】jsqlparser学习-SQL转换为java类