//加了了Optional防止空指针异常,加入了泛型,省去了强制转化
 import java.io.*;
import java.util.Optional; /**
* Created by Jason on 2017/1/3.
*/
public class ByteArrayUtils { public static<T> Optional<byte[]> objectToBytes(T obj){
byte[] bytes = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream sOut;
try {
sOut = new ObjectOutputStream(out);
sOut.writeObject(obj);
sOut.flush();
bytes= out.toByteArray();
} catch (IOException e) {
e.printStackTrace();
}
return Optional.ofNullable(bytes);
} public static<T> Optional<T> bytesToObject(byte[] bytes) {
T t = null;
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
ObjectInputStream sIn;
try {
sIn = new ObjectInputStream(in);
t = (T)sIn.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return Optional.ofNullable(t); }
}
---------------------
作者:idealemail
来源:CSDN
原文:https://blog.csdn.net/idealemail/article/details/53993872
版权声明:本文为博主原创文章,转载请附上博文链接!

  

【转载】java对象和byte数组互转,直接拿去用的更多相关文章

  1. java 对象 json 集合 数组 互转

    1.先定义一个类对象 package com.basics; import com.alibaba.fastjson.JSONObject; import java.util.List; import ...

  2. Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)

    Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...

  3. JAVA将Object对象转byte数组

    /** * 将Object对象转byte数组 * @param obj byte数组的object对象 * @return */ public static byte[] toByteArray(Ob ...

  4. Java 基础类型转换byte数组, byte数组转换基础类型

    Java 基础类型转换byte数组, byte数组转换基础类型 Java类型转换 java类对象转化为byte数组

  5. Golang十六进制字符串和byte数组互转

    Golang十六进制字符串和byte数组互转 需求 Golang十六进制字符串和byte数组互相转换,使用"encoding/hex"包 实现Demo package main i ...

  6. 可序列化对象和byte[]数组之间的互转

    /// <summary> /// 将可序列化对象转成Byte数组 /// </summary> /// <param name="obj">对 ...

  7. java对象转字节数组,获取泛型类

    对象转字节数组,字节数组在恢复成对象 Test.java class Test { public static void main(String args[]) throws IOException, ...

  8. java对象与json串互转

    1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSO ...

  9. 字符串、十六进制、byte数组互转

    import java.io.ByteArrayOutputStream; public class HexUtil { /** * @param args */ public static void ...

随机推荐

  1. ie67的冷知识

    1. _display:inline;是什么意思 只有ie6认识带下划线的,一般这种写法是用来消除ie6对margin双倍的bug的,比如你写margin-left:10px;那么ie6下显示的是20 ...

  2. log4j动态监听配置修改

    一般情况下,log4j的配置文件是log4j.properties.但是每次我们修改了配置文件之后程序并不会自动去加载,而需要我们去重启程序.那么怎么样才能让程序不用重启就监听到变化呢.代码如下: p ...

  3. window如何安装redis服务、卸载redis服务和启动redis服务

    window如何安装redis服务.卸载redis服务和启动redis服务 一.总结 一句话总结:github上下载,解压,命令行运行(redis-server.exe redis.windows.c ...

  4. Mysql数据库如何自动备份

    Mysql数据库如何自动备份 一.总结 一句话总结:用navicat配合windows的批处理即可 navicat windows批处理 二.Mysql数据库自动备份 参考:Mysql数据库自动备份 ...

  5. ROS的安装和卸载

    Robot Operating System (ROS) 是一个得到广泛应用机器人系统的软件框架,它包含了一系列的软件库和工具用于构建机器人应用.从驱动到最先进的算法,以及强大的开发者工具,ROS 包 ...

  6. 20165327 2017-2018-2 《Java程序设计》第2周学习总结

    20165327 2017-2018-2 <Java程序设计>第2周学习总结 内容:教材第2.3章 内容小结: (一)标识符由字母.下划线.美元符号和数字组成, 并且第一个字符不能是数字字 ...

  7. Docker入门(CentOS7)

    1.docker安装yum -y install bash-completion     #tab键补齐包yum install net-tools -yyum -y install wgetwget ...

  8. 将maven项目托管到github

    1.下载安装git 并通过 git config --global user.name "",和git config --global user.email "" ...

  9. python记录_day17 类与类之间的关系

    一.依赖关系 a类的对象是b类方法的参数 这种关系是我用着你,但你不属于我,比如公司和临时工的关系,是很弱的一种关系 class Zhiwu: def __init__(self,name,atk): ...

  10. apache配置一个域名读取多个路径代码(包括主干和分支)

    <VirtualHost *:80> ServerAdmin 651629095@qq.com DocumentRoot "C:/wamp/www/sms/trunk/publi ...