如何删除写入文件的对象?

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。然后从上述列表中删除要删除的那个。最后,用列表中的新内容覆盖文件的初始内容。

如果你不想重新读取文件的内容并且你有对内存中对象列表的引用,那么你可以只删除该对象并覆盖 文件内容