Mostafa M Awad
Mostafa M Awad

Reputation: 321

How to implement Serializable?

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

Answers (1)

DonatasD
DonatasD

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

Related Questions