オブジェクトを読み込んでファイルに書きたいと思っています。これは私の試みです:ファイルへのオブジェクトの書き込みと読み取り
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
public class SaveOpen implements Serializable
{
private static String fileName;
private ArrayList<Person> list = new ArrayList<Person>();
public SaveOpen() {
fileName = "file.txt";
}
//Reader
public static Object deserialize() throws IOException,
ClassNotFoundException {
FileInputStream fis = new FileInputStream(fileName);
BufferedInputStream bis = new BufferedInputStream(fis);
ObjectInputStream ois = new ObjectInputStream(bis);
Object obj = ois.readObject();
ois.close();
return obj;
}
//Writer
public static void serialize(Object obj)
throws IOException {
FileOutputStream fos = new FileOutputStream(fileName);
BufferedOutputStream bos = new BufferedOutputStream(fos);
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
oos.close();
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public ArrayList<Person> getListPersons() {
return list;
}
}
しかし、私はこれが正しい方法であるのか、これをクラスでどのように実装するのかはわかりません。オブジェクトはPerson
で、ファイルからそのオブジェクトを保存して読みたいとします。それはファイル.txt
に行われるはずですか?物事をはっきりさせることができる人は誰ですか?ありがとう!
ストリームを使用してオブジェクトをシリアライズする場合は、テキストではなくバイナリデータを書き込むので、 '.txt'ファイルに書き込むべきではありません。 – khelwood
'.txt'ファイルに書き込むことはできませんが、内容はテキストであることを示唆しています。 – Kayaman
https://docs.oracle.com/javase/8/docs/technotes/guides/serialization/ <=利用可能な例があります。 – Fildor