首页后端开发JAVAjava里面序列化和反序列化

java里面序列化和反序列化

时间2023-11-30 02:49:02发布访客分类JAVA浏览941
导读:Java中的序列化和反序列化是常见的操作,特别在网络传输和文件存储中应用广泛。序列化是将对象转换成字节流的过程,而反序列化则是将字节流转换成对象的过程。在Java中,可以通过实现Serializable接口来实现对象的序列化和反序列化。下面...

Java中的序列化和反序列化是常见的操作,特别在网络传输和文件存储中应用广泛。序列化是将对象转换成字节流的过程,而反序列化则是将字节流转换成对象的过程。在Java中,可以通过实现Serializable接口来实现对象的序列化和反序列化。

下面是一个对象的序列化和反序列化的例子:

import java.io.*;
public class User implements Serializable {
    private String username;
    private String password;
public User(String username, String password) {
    this.username = username;
    this.password = password;
}
public String getUsername() {
    return username;
}
public String getPassword() {
    return password;
}
public static void main(String[] args) {
    User user = new User("admin", "123456");
// 对象序列化try {
    FileOutputStream fos = new FileOutputStream("user.ser");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(user);
    oos.close();
    fos.close();
    System.out.println("对象已经序列化");
}
 catch (IOException e) {
    e.printStackTrace();
}
// 对象反序列化try {
    FileInputStream fis = new FileInputStream("user.ser");
    ObjectInputStream ois = new ObjectInputStream(fis);
    User deserializedUser = (User) ois.readObject();
    System.out.println("用户名:" + deserializedUser.getUsername());
     // 输出 adminSystem.out.println("密码:" + deserializedUser.getPassword());
 // 输出 123456}
 catch (IOException | ClassNotFoundException e) {
    e.printStackTrace();
}
}
}
    

在上面的例子中,我们创建了一个实现了Serializable接口的User类。在main方法中,我们先创建了一个User对象,然后将它序列化到文件中。接着,我们又反序列化了这个对象,并输出了它的用户名和密码。

需要注意的是,在序列化时,需要将对象写入到一个输出流中,这里我们使用的是ObjectOutputStream,而在反序列化时,则需要从一个输入流中读取对象,这里我们使用的是ObjectInputStream。反序列化时需要注意类型转换,因为反序列化返回的是一个Object类型的对象,需要将它转换成原始对象的类型。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: java里面序列化和反序列化
本文地址: https://pptw.com/jishu/561292.html
php sql 查找字符串 java里面的栈堆和方法区

游客 回复需填写必要信息