我想读取和写入一个文件的对象。这是我的尝试:在文件中写入和读取对象
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