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. 対象
「Address」オブジェクトを作成し、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. オブジェクトをファイルに書き込む
このクラスは、「Address」オブジェクトとその変数値(「wallstreet」、「united state」)を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に関するこの記事をお読みください。