summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/examples/Listing4108.java
blob: e9b06e36c3dbb9c0dca8b2040003427def5d0bae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* Listing4108.java */

import java.io.*;
import java.util.*;

public class Listing4108
{
  public static void main(String[] args)
  {
    //Erzeugen der Familie
    Person opa = new Person("Eugen"); 
    Person oma = new Person("Therese");
    Person vater = new Person("Barny");
    Person mutter = new Person("Wilma");
    Person kind1 = new Person("Fritzchen");
    Person kind2 = new Person("Kalli");
    vater.father = opa;
    vater.mother = oma;
    kind1.father = kind2.father = vater;
    kind1.mother = kind2.mother = mutter; 

    //Serialisieren der Familie
    try {
      FileOutputStream fs = new FileOutputStream("test3.ser");
      ObjectOutputStream os = new ObjectOutputStream(fs);
      os.writeObject(kind1);
      os.writeObject(kind2);
      os.close();
    } catch (IOException e) {
      System.err.println(e.toString());
    }

    //Rekonstruieren der Familie
    kind1 = kind2 = null; 
    try {
      FileInputStream fs = new FileInputStream("test3.ser");
      ObjectInputStream is = new ObjectInputStream(fs);
      kind1 = (Person)is.readObject();
      kind2 = (Person)is.readObject();
      //�berpr�fen der Objekte
      System.out.println(kind1.name); 
      System.out.println(kind2.name);
      System.out.println(kind1.father.name);
      System.out.println(kind1.mother.name);
      System.out.println(kind2.father.name);
      System.out.println(kind2.mother.name);
      System.out.println(kind1.father.father.name);
      System.out.println(kind1.father.mother.name); 
      //Name des Vaters �ndern
      kind1.father.name = "Fred"; 
      //Erneutes �berpr�fen der Objekte
      System.out.println("---"); 
      System.out.println(kind1.name);
      System.out.println(kind2.name);
      System.out.println(kind1.father.name);
      System.out.println(kind1.mother.name);
      System.out.println(kind2.father.name);
      System.out.println(kind2.mother.name);
      System.out.println(kind1.father.father.name);
      System.out.println(kind1.father.mother.name); 
      is.close();
    } catch (ClassNotFoundException e) {
      System.err.println(e.toString());
    } catch (IOException e) {
      System.err.println(e.toString());
    }
  }
}