Reputation: 321
How should I implement
the Serializable
interface?
I have a class
Student
, and need to be able to save it to disk. For my homework, I have to serialize five different Student
objects and save them to file.
class Student {
String mFirstName;
String mSecondName;
String mPhoneNumber;
String mAddress;
String mCity;
Student(final String pFirstName, final String pSecondName, final String pPhoneNumber, final String pAddress, final String pCity){
this.mFirstName = pFirstName;
this.mSecondName = pSecondName;
this.mPhoneNumber = pPhoneNumber;
this.mAddress = pAddress;
this.mCity = pCity;
}}
I've tried using ObjectOutputStream
to serialize a Student
, but it throws an error:
ObjectOutputStream lOutputStream = new ObjectOutputStream(new FileOutputStream("file.txt", true));
lOutputStream.write(new Student("foo","bar","555-1234","Flat 40","Liverpool"));
Upvotes: 19
Views: 26197
Reputation: 650
The only thing you need to do is implement Serializable. The only thing you need to worry when implementing this interface is to make sure that all fields of such class, has implemented Serializable interface as well. In your case all fields are Strings and they already implement Serializable. Therefore, you only need to add implements Serializable. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html
public class Student implements Serializable {
String first;
String second;
String phone;
String cityAddress;
String cityStreet;
public Student(String s1, String s2, String s3, String s4, String s5) {
first = s1;
second = s2;
phone = s3;
cityAddress = s4;
cityStreet = s5;
}
}
Upvotes: 34