Klasa Person
package com.company;
import java.io.Serializable;
public class Person implements Serializable {
private static final long serialVersionUID = 3812017177088226528L;
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Person(){}
public Person(String firstName, String lastName) {
setFirstName(firstName);
setLastName(lastName);
}
public String toString() {
return firstName + " " + lastName;
}
}
potem
package com.company;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Person person = new Person();
String fileName = "person.obj";
FileOutputStream fs = new FileOutputStream(fileName,true);
ObjectOutputStream os = new ObjectOutputStream(fs);
List<Person> per = new ArrayList<>();
per.add(new Person("Jurek", "Nowak"));
per.add(new Person("Wacek ", "Zielonka"));
os.writeObject(per);
os.flush();
os.close();
System.out.println("Zapisano obiekt do pliku");
// ODczyt danych z pliku ///////////////////////////////
FileInputStream fis = new FileInputStream(fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
List<Person> pera = (List<Person>) ois.readObject();
for (Person el : pera) {
System.out.println(el.getFirstName() + " " + el.getLastName());
ois.close();
}
}
}
Wyświetla
Zapisano obiekt do pliku
Jurek Nowak
Wacek Zielonka
Potem zmieniam nazwiska uruchamiam program ( w pliku widzę że nowe nazwiska się dodały) ale wyświetla tylko te dwa zapisane za pierwszym razem/
Zawartość pliku.
¬í sr java.util.ArrayListxÒ™Ça I sizexp w sr com.company.Person4çlöôà L firstNamet Ljava/lang/String;L lastNameq ~ xpt Jurekt Nowaksq ~ t Wacek t Zielonkax¬í sr java.util.ArrayListxÒ™Ça I sizexp w sr com.company.Person4çlöôà L firstNamet Ljava/lang/String;L lastNameq ~ xpt Mirekt kaziuksq ~ t Aga t kruszonkax