这里详细讲解“Java对象转成byte数组的3种方法”的攻略。
- 第一种方法:通过序列化实现对象转byte数组
通过Java中的序列化可以将对象转化成byte数组,常用的类有ObjectOutputStream和ByteArrayOutputStream。
示例代码:
public static byte[] serialize(Object obj) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
return bos.toByteArray();
}
上面代码可以将传入的obj对象转化成byte数组,方法返回一个byte[]类型的数组。
- 第二种方法:通过Json实现对象转byte数组
可以将Java对象序列化为Json字符串类型,再将Json字符串转换为byte数组形式,这个方法可以通过一些Json库来实现,比如Jackson。
示例代码:
public static byte[] toJsonBytes(Object obj) throws IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsBytes(obj);
}
上面代码可以将传入的obj对象转化成byte数组,方法返回一个byte[]类型的数组。
- 第三种方法:通过Java NIO实现对象转byte数组
Java NIO (New IO) 是从 Java 1.4 版本开始引入的一套全新的 I/O API,可以通过Java NIO中的ByteBuffer来实现对象转化成byte数组。
示例代码:
public static byte[] toByteArray(Object obj) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
oos.flush();
byte[] buf = bos.toByteArray();
return buf;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
上面代码可以将传入的obj对象转化成byte数组,方法返回一个byte[]类型的数组。
以上就是Java对象转成byte数组的三种方法,个人认为第一种方法相对简单易懂,但也要根据情况选择最适合的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java对象转成byte数组的3种方法 - Python技术站