Java对象转换成字节数组是Java程序中经常用到的功能,常用的方法有三种:序列化、ObjectOutputStream和ByteArrayOutputStream。
1、序列化
序列化是指将对象的状态信息转换为可存储或传输的形式的过程,序列化后的字节数组可以用于网络传输、存储等。
// 实现序列化
public class Student implements Serializable {
private String name;
private int age;
// setter and getter
// toString
}
// 将对象转换成字节数组
public byte[] serialize(Object obj) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
byte[] bytes = baos.toByteArray();
oos.close();
baos.close();
return bytes;
}
2、ObjectOutputStream
ObjectOutputStream是Java提供的一个类,它可以将Java对象转换成字节数组。
public byte[] objectOutputStream(Object obj) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
byte[] bytes = baos.toByteArray();
oos.close();
baos.close();
return bytes;
}
3、ByteArrayOutputStream
ByteArrayOutputStream是Java提供的一个类,它可以将Java对象转换成字节数组。
public byte[] byteArrayOutputStream(Object obj) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
byte[] bytes = baos.toByteArray();
oos.close();
baos.close();
return bytes;
}
以上就是,这三种方法都可以将Java对象转换成字节数组,可以根据实际情况选择适合的方法。