Я хочу обновить объект после его десериализации, затем повторно сериализовать указанный объект обратно в его файл.
Объект, который я хочу обновить, может также содержать структуру данных, которая содержит другие экземпляры другого класса.Я заставил эти классы реализовать 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;
}
}