做大学考试准备(Java OOP),我真的很难过。任何帮助,将不胜感激。在这一年里,我错过了大部分I.O部分(重大错误)。无论如何,我会尽力解释我的问题。
我的应用程序使用swing UI,用户应该能够创建一个名称,编号和余额(String int和double)的银行帐户。我正在使用Account类来设置,获取和存储变量。
我需要添加新帐户,查看所有帐户,然后将所有客户详细信息存储在文件中并在重新打开应用程序后能够读取它们的功能。我使用ArrayList来存储ArrayList<Account> accList;
,这是我到目前为止用于将对象写入文件的内容(我已经有了相关的FileHandling代码,所以我不打算包含catch语句:
Account account = new Account(name, number, balance);
accList.add(account);
try {
ObjectOutputStream out;
out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(output)));
for (int i = 0; i < accList.size(); i++) {
out.writeObject(accList.get(i));
}
out.close();
}
似乎工作正常..从文件中查看我似乎有问题。这是一段代码:
ObjectInputStream in = null;
Account account;
try {
in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(output)));
while (true) {
account = (Account) in.readObject();
accList.add(account);
jTextArea1.setText(accList.toString());
}
}
toString()方法是我自己的Account类中的@Override方法,并打印出正确的名称。当我按下&#34;查看帐户&#34;两次。它重新打印每次查看的输出,所以如果第一次查看时有1个帐户,下一次是2,然后是3等我知道这样一个冗长的问题可能是一个简单的答案,但我一直在寻找现在很多年,需要另一个视角!