Как прочитать объект из файла в Java
В предыдущем примере вы узнали оhow to write an Object into a file. В этом примере вы узнаете, как прочитать объект из сохраненного файла или как десериализовать сериализованный файл.
Процесс десериализации очень похож на сериализацию, вам нужно использоватьObjectInputStream
, чтобы прочитать содержимое файла и преобразовать его обратно в объект Java.
FileInputStream fin = new FileInputStream("c:\\temp\\address.ser"); ObjectInputStream ois = new ObjectInputStream(fin); address = (Address) ois.readObject();
1. Читать объект из файла
Этот класс будет читать сериализованный файлc:\temp\address.ser
(созданный вthis example), конвертировать его обратно в объект «Address» и распечатывать сохраненное значение.
ReadObject.java
package com.example.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 state