Как обновить десериализованный объект в Java? - PullRequest
0 голосов
/ 08 июля 2019

Я хочу обновить объект после его десериализации, затем повторно сериализовать указанный объект обратно в его файл.

Объект, который я хочу обновить, может также содержать структуру данных, которая содержит другие экземпляры другого класса.Я заставил эти классы реализовать Serializable.

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

Я не могу использовать RDMS, так как я должен хранить свои объекты таким образом.

Код ниже - это то, что я придумал в данный момент.

public void updateapplications() throws IOException, ClassNotFoundException, FileNotFoundException {
    Applicant applicant;
    File dir = new File("./Users/");
    File[] directoryListing = dir.listFiles();
    if (directoryListing != null) {
        for (File child : directoryListing) {
            // Do something with child
            // think child is filename?
            if (this.user.getName() == child.getName()){
                FileInputStream fis = new FileInputStream(child);
                ObjectInputStream ois = new ObjectInputStream(fis);
                Object obj = ois.readObject();
                ois.close();
                applicant = (Applicant) obj;
                //How can i update the instance of my object withought overiding any other instances
                // stored within the same txt file
                FileOutputStream fos = new FileOutputStream(child.getName());
                ObjectOutputStream oos = new ObjectOutputStream(fos);
                oos.writeObject(obj);
                fos.close();
                break;
            }

}
...