gpt4 book ai didi

java - ObjectOutputStream 不会保存我的 arrayList

转载 作者:行者123 更新时间:2023-12-01 14:41:08 27 4
gpt4 key购买 nike

我的 UserArchive 类中有这个 arrayList,我的 MainWindow 类中有一个 saveFile() 方法。我的问题是,每次关闭程序时,src/customerlist.txt 中显示的所有内容都是: ¡sr UserArchiveYï≈ùÅ—ÀDLlisttLjava/util/ArrayList;xpsr java.util.ArrayListxÅ“ô«aùIsizepwx.

这是我的代码:任何人都可以发现任何问题吗?

public class UserArchive implements Serializable {
ArrayList<User> list = new ArrayList<User>();

public void regCustomer(User u) {
list.add(u);
}

public String toString() {
sorter();
String users = "";
Iterator<User> iterator = list.iterator();

while (iterator.hasNext()) {
users += iterator.next().toString() + "\n";
}
return users;
}

主窗口类:

public class MainWindow extends JFrame {
private SaleWindow sW;
private UserArchive userA;
int customerID = 0;

////

    public void saveFile() {
try {
FileOutputStream outStream = new FileOutputStream(
"src/customerlist.txt");
ObjectOutputStream utfil = new ObjectOutputStream(outStream);
utfil.writeObject(userA);
utfil.close();
} catch (NotSerializableException nse) {
JOptionPane
.showMessageDialog(this, "Objektet er ikke serialisert!");
} catch (IOException ioe) {
JOptionPane
.showMessageDialog(this, "Problem med utskrift til fil!");
}
}

最佳答案

是的,因为 ObjectOutputStream 以二进制形式序列化对象。如果您想以某种 ASCII 形式进行序列化,请尝试使用 JSON 序列化程序,例如 Jackson .

关于java - ObjectOutputStream 不会保存我的 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15946697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com