欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java里面序列化和反序列化

錢文豪1年前6瀏覽0評論

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()); // 輸出 admin
System.out.println("密碼:" + deserializedUser.getPassword()); // 輸出 123456
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}

在上面的例子中,我們創建了一個實現了Serializable接口的User類。在main方法中,我們先創建了一個User對象,然后將它序列化到文件中。接著,我們又反序列化了這個對象,并輸出了它的用戶名和密碼。

需要注意的是,在序列化時,需要將對象寫入到一個輸出流中,這里我們使用的是ObjectOutputStream,而在反序列化時,則需要從一個輸入流中讀取對象,這里我們使用的是ObjectInputStream。反序列化時需要注意類型轉換,因為反序列化返回的是一個Object類型的對象,需要將它轉換成原始對象的類型。