如何删除写入文件的对象?
How to delete an object that are written into file?
在我的程序中,用户提供一些输入,然后将这些输入添加到 arrayList 中。 arrayList 对象被写入文件。因此,我创建了一个写入文件和从文件读取的方法(使用 file-i/o & object-i/o 流)。
现在如果我想从文件中删除特定对象,我该怎么做?
这是我正在研究的部分:
case 4:
bankAccounts2=(List<BankAccount>)rw.readFromFile();//method calling; BankAccount is the class for settre and getter
Iterator<BankAccount> it=bankAccounts2.iterator();//bankAccounts2 is the arrayList for reading file
System.out.println("Enter the account you want to delete:");
deleteAcc = sc.nextInt();
while (it.hasNext()) {
BankAccount next = it.next();
if (next.getAccNum() == deleteAcc) {
it.remove();
}
}
break;
我认为最简单的解决方案是将文件中的所有对象读入 ArrayList
。然后从上述列表中删除要删除的那个。最后,用列表中的新内容覆盖文件的初始内容。
如果你不想重新读取文件的内容并且你有对内存中对象列表的引用,那么你可以只删除该对象并覆盖 文件内容
在我的程序中,用户提供一些输入,然后将这些输入添加到 arrayList 中。 arrayList 对象被写入文件。因此,我创建了一个写入文件和从文件读取的方法(使用 file-i/o & object-i/o 流)。
现在如果我想从文件中删除特定对象,我该怎么做?
这是我正在研究的部分:
case 4:
bankAccounts2=(List<BankAccount>)rw.readFromFile();//method calling; BankAccount is the class for settre and getter
Iterator<BankAccount> it=bankAccounts2.iterator();//bankAccounts2 is the arrayList for reading file
System.out.println("Enter the account you want to delete:");
deleteAcc = sc.nextInt();
while (it.hasNext()) {
BankAccount next = it.next();
if (next.getAccNum() == deleteAcc) {
it.remove();
}
}
break;
我认为最简单的解决方案是将文件中的所有对象读入 ArrayList
。然后从上述列表中删除要删除的那个。最后,用列表中的新内容覆盖文件的初始内容。
如果你不想重新读取文件的内容并且你有对内存中对象列表的引用,那么你可以只删除该对象并覆盖 文件内容