Как записать объект в файл на Java
Объект Java может записывать в файл для будущего доступа, это называетсяSerialization. Для этого вам необходимо реализоватьSerializable+`interface, and use `+ObjectOutputStream
для записи объектов в файл.
FileOutputStream fout = new FileOutputStream("c:\\temp\\address.ser"); ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(address);
1. объект
Создайте объект «Адрес» и реализуйте интерфейсSerializable
. Этот объект собирается записать в файл.
Address.java
package com.example.io; import java.io.Serializable; public class Address implements Serializable { private static final long serialVersionUID = 1L; String street; String country; public void setStreet(String street) { this.street = street; } public void setCountry(String country) { this.country = country; } public String getStreet() { return this.street; } public String getCountry() { return this.country; } @Override public String toString() { return new StringBuffer(" Street : ") .append(this.street).append(" Country : ") .append(this.country).toString(); } }
2. Записать объект в файл
Этот класс запишет объект «Адрес» и его значение переменной («Уолл-стрит», «Соединенные Штаты») в файл с именемc:\temp\address.ser
.
WriteObject.java
package com.example.io; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class WriteObject { public static void main(String args[]) { WriteObject obj = new WriteObject(); Address address = new Address(); address.setStreet("wall street"); address.setCountry("united state"); obj.serializeAddress(address); } public void serializeAddress(Address address) { FileOutputStream fout = null; ObjectOutputStream oos = null; try { fout = new FileOutputStream("c:\\temp\\address.ser"); oos = new ObjectOutputStream(fout); oos.writeObject(address); System.out.println("Done"); } catch (Exception ex) { ex.printStackTrace(); } finally { if (fout != null) { try { fout.close(); } catch (IOException e) { e.printStackTrace(); } } if (oos != null) { try { oos.close(); } catch (IOException e) { e.printStackTrace(); } } } } public void serializeAddressJDK7(Address address) { try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:\\temp\\address2.ser"))) { oos.writeObject(address); System.out.println("Done"); } catch (Exception ex) { ex.printStackTrace(); } } }
Note
Прочтите эту статью оhow to read the saved object from file – Java.