📌  相关文章
📜  将字节数组转换为对象的Java程序

📅  最后修改于: 2022-05-13 01:54:40.981000             🧑  作者: Mango

将字节数组转换为对象的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);
    }
}


输出 :