温馨提示×

Java Hashtable的序列化和反序列化

小樊
87
2024-08-30 06:18:47
栏目: 编程语言

Java中的Hashtable实现了Serializable接口,因此可以进行序列化和反序列化操作

  1. 序列化:将Hashtable对象转换为字节流,以便在网络上传输或将其保存到文件中。
import java.io.*;
import java.util.Hashtable;

public class SerializeHashtable {
    public static void main(String[] args) {
        Hashtable<String, String> hashtable = new Hashtable<>();
        hashtable.put("key1", "value1");
        hashtable.put("key2", "value2");
        hashtable.put("key3", "value3");

        try {
            FileOutputStream fos = new FileOutputStream("hashtable.ser");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(hashtable);
            oos.close();
            fos.close();
            System.out.println("Hashtable serialized successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  1. 反序列化:从字节流中恢复Hashtable对象。
import java.io.*;
import java.util.Hashtable;

public class DeserializeHashtable {
    public static void main(String[] args) {
        Hashtable<String, String> hashtable = null;

        try {
            FileInputStream fis = new FileInputStream("hashtable.ser");
            ObjectInputStream ois = new ObjectInputStream(fis);
            hashtable = (Hashtable<String, String>) ois.readObject();
            ois.close();
            fis.close();
            System.out.println("Hashtable deserialized successfully.");
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }

        if (hashtable != null) {
            System.out.println("Deserialized Hashtable: " + hashtable);
        }
    }
}

这两个示例分别展示了如何序列化和反序列化Hashtable对象。首先,我们创建一个Hashtable对象并添加一些键值对。然后,我们使用FileOutputStream和ObjectOutputStream将Hashtable对象序列化到文件"hashtable.ser"中。接下来,我们使用FileInputStream和ObjectInputStream从文件中反序列化Hashtable对象。最后,我们打印出反序列化后的Hashtable对象。

0