package elte.java2_utikalauz5.serial; import java.io.*; /** Körhivatkozások szerializálása. @link.forrásfájl {@docRoot}/../data/serial/src Ciklikus.java @link.letöltés {@docRoot}/../data/serial Ciklikus.jar @since Java Útikalauz programozóknak 1.1 */ public class Ciklikus implements Serializable { /** Verziószám */ private final static long serialVersionUID = 15L; private int ertek; public Ciklikus kovetkezo; public Ciklikus(int e) { ertek = e; kovetkezo = null; } public void print() { System.out.print(ertek); System.out.print(" "); } public static void CiklikusIro() { try { Ciklikus c1 = new Ciklikus(1); Ciklikus c2 = new Ciklikus(2); Ciklikus c3 = new Ciklikus(3); c1.kovetkezo = c2; c2.kovetkezo = c3; c3.kovetkezo = c1; Ciklikus cp = c1; for( int i = 0; i < 10; i++ ) { cp.print(); cp = cp.kovetkezo; } ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("ciklikus.tmp") ); out.writeObject( c1 ); out.close(); } catch( Exception ee ) { System.err.println(ee.toString()); } } public static void CiklikusOlvaso() { try { Object cc = null; ObjectInputStream in = new ObjectInputStream( new FileInputStream("ciklikus.tmp") ); cc = in.readObject(); in.close(); Ciklikus cp = (Ciklikus) cc; for( int i = 0; i < 10; i++ ) { cp.print(); cp = cp.kovetkezo; } } catch( Exception ee ) { System.err.println(ee.toString()); } } public static void main(String[] args) { CiklikusIro(); System.out.print("* "); CiklikusOlvaso(); } }