在此示例中,您将学习如何从保存的文件中读取对象或如何反序列化序列化的文件。
反序列化的过程与序列化非常相似,您需要使用ObjectInputStream读取文件的内容并将其转换回Java对象。
FileInputStream fin = new FileInputStream("c:\\temp\\address.ser"); ObjectInputStream ois = new ObjectInputStream(fin); address = (Address) ois.readObject();此类将读取序列化文件c:\\temp\\address.ser (在本示例中创建),然后将其转换回“ Address”对象并打印出保存的值。
ReadObject.java
package com.mkyong.io; import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; public class ReadObject { public static void main(String args[]) { ReadObject obj = new ReadObject(); Address address = obj.deserialzeAddress("c:\\temp\\address.ser"); System.out.println(address); } public Address deserialzeAddress(String filename) { Address address = null; FileInputStream fin = null; ObjectInputStream ois = null; try { fin = new FileInputStream(filename); ois = new ObjectInputStream(fin); address = (Address) ois.readObject(); } catch (Exception ex) { ex.printStackTrace(); } finally { if (fin != null) { try { fin.close(); } catch (IOException e) { e.printStackTrace(); } } if (ois != null) { try { ois.close(); } catch (IOException e) { e.printStackTrace(); } } } return address; } public Address deserialzeAddressJDK7(String filename) { Address address = null; try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filename))) { address = (Address) ois.readObject(); } catch (Exception ex) { ex.printStackTrace(); } return address; } }输出量
Street : wall street Country : united stateObjectOutputStream JavaDoc
Java对象序列化
JDK 7中的try-with-resources示例
翻译自: https://mkyong.com/java/how-to-read-an-object-from-file-in-java/
推荐阅读--
球分享
球点赞
球在看
