2015-03-01 16 views
7

Jak powinienem być implement z interfejsem ?Jak zaimplementować Serializable?

Mam classStudent i muszę mieć możliwość zapisania go na dysku. Dla mojej pracy domowej muszę serializować pięć różnych obiektów Student i zapisać je do pliku.

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; 

}} 

Próbowałem za pomocą ObjectOutputStream serializować Student, ale generuje błąd:

ObjectOutputStream lOutputStream = new ObjectOutputStream(new FileOutputStream("file.txt", true)); 
lOutputStream.write(new Student("foo","bar","555-1234","Flat 40","Liverpool")); 
+0

Musisz pokazać nam, co już wypróbowałeś. StackOverflow nie jest stroną "wykonaj moją pracę domową dla mnie". –

+0

Nie chcę rozwiązać, chcę wiedzieć, gdzie błąd w kodzie .xd lol –

Odpowiedz

15

Jedyną rzeczą, którą musisz zrobić, to wdrożenie Serializable. W przypadku implementacji tego interfejsu jedyną rzeczą, na którą należy się martwić, jest upewnienie się, że wszystkie wystąpienia takiej klasy/obiektu zawierają tylko obiekty serializowalne. Jednak String jest już serializowany, więc wystarczy dodać narzędzia Serializable. http://docs.oracle.com/javase/7/docs/api/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; 
    } 
}