【发布时间】:2021-01-19 23:25:04
【问题描述】:
我有一个包含这种内容的文件:
accountNumber=1000, branchName='11', balance=420, customerNumber=1
accountNumber=1001, branchName='11', balance=323, customerNumber=2
我有一个方法可以读取内容并将其加载到ArrayList 但是:
private static void loadAccounts() throws IOException, ClassNotFoundException {
static ArrayList<Account> accounts = new ArrayList<Account>();
FileInputStream fileInputStream = new FileInputStream("AccountFile");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
accounts = (ArrayList<Account>) objectInputStream.readObject();
objectInputStream.close();
}
但在我致电loadAccount() 后,我收到此错误:
线程“主”java.io.StreamCorruptedException 中的异常:无效 流标头:6163636F 在 java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:938) 在 java.io.ObjectInputStream.(ObjectInputStream.java:396) 在 Main.main(Main.java:18) 处的 Main.loadAccounts(Main.java:151)
【问题讨论】:
-
ObjectInputStream 用于序列化数据,而不是随机文本
-
您应该研究基于 JSON 的解决方案。
-
你可能应该在文件中逐行读取,并相应地存储