Как обновить (или перезаписать) указанный c существующий объект в файле, используя ObjectInputStream в Java? - PullRequest
0 голосов
/ 30 января 2020

Для школьного Java мини-проекта я создаю какую-то банковскую систему. Я написал эту функцию в классе BankManager, чтобы сохранить новые учетные записи в файле:

public boolean save(Account a) throws Exception {
    List<Account> exists = this.getAll();
    if(exists.contains(a))
        throw new Exception();
    else {
        this.oos.writeObject(a);
    }
    return true;
}

, где определены потоки ввода-вывода, как только я инициирую класс:

public void constructor() {
    try {
        this.fos = new FileOutputStream(this.filePath);
        this.oos = new ObjectOutputStream(this.fos);
        this.fis = new FileInputStream(this.filePath);
        this.ois = new ObjectInputStream(this.fis);
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

Функция берет объект Account и записывает его в файл (один файл для всех объектов Account)

Теперь я хочу сделать так, чтобы я мог обновить учетную запись в этом файле, например, если учетная запись изменяется количество денег, которое я хочу, чтобы оно было обновлено в файле.

Я читал об ObjectOutputStream.replaceObject (), но не выяснил, как он может помочь мне заменить указанный c объект в файл многих объектов. Кроме того, каждый урок, который я видел, сохраняет объекты в текстовых файлах, есть ли причина для этого?

...