Java Hashtable的序列化和反序列化

655Z技术栈 JAVA编程 2025年07月04日 14

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对象。

提供PHP及ThinkPHP框架的定制开发、代码优化,PHP修改、ThinkPHP修改。

邮箱:yvsm@163.com 微信:yvsm316 QQ:316430983
关闭

用微信“扫一扫”