将字节数组转换为对象的Java程序
将字节数组转换为对象,将对象转换为字节数组 过程称为反序列化和序列化。被序列化/反序列化的类对象必须实现接口Serializable。
- 可序列化 是一个标记接口,位于“Java.io.Serializable”包下。
- 字节数组:字节数组仅用于存储字节数据类型值。字节数组中元素的默认值为 0。
- 对象:用户定义的数据类型。
对于序列化/反序列化,我们使用类SerializationUtils。
方法(使用 SerializationUtils 类)
- 序列化和反序列化是这个类的两个主要功能。
- 这个类在包' org.apache.commons.lang3 '下。
序列化(将 Object 转换为字节数组)
句法:
public static byte[] serialize(Serializable object)
参数:用户想要序列化的对象。
返回:函数将返回字节数组。
反序列化(将字节数组转换为对象)
句法:
public static Object deserialize(byte[] objectByteArray)
参数:序列化字节数组。
返回:函数将返回对象。
例子:
Java
// Java Program to Convert Byte Array to Object
import java.io.*;
import org.apache.commons.lang3.*;
class gfgStudent implements Serializable {
public int rollNumber;
public String name;
public char gender;
public gfgStudent(int rollNumber, String name,
char gender)
{
this.rollNumber = rollNumber;
this.name = name;
this.gender = gender;
}
}
class gfgMain {
public static void main(String arg[])
{
gfgStudent student;
student = new gfgStudent(101, "Harsh", 'M');
// converting Object to byte array
// serializing the object of gfgStudent class
// (student)
byte byteArray[]
= SerializationUtils.serialize(student);
gfgStudent newStudent;
// converting byte array to object
// deserializing the object of gfgStudent class
// (student) the function will return object of
// Object type (here we are type casting it into
// gfgStudent)
newStudent
= (gfgStudent)SerializationUtils.deserialize(
byteArray);
System.out.println("Deserialized object");
System.out.println(newStudent.rollNumber);
System.out.println(newStudent.name);
System.out.println(newStudent.gender);
}
}
输出 :