ObjectWriteProgram (KarelOOP2)
Retired DISLab
/* * Copyright 2020 Sangwon Park @ DISLab, HUFS */ package cp.java.ch11.io; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.Iterator; import hufs.dislab.karel.IKarel; import hufs.dislab.karel.IKarelProgram; /** * * @author Sangwon Park * @since KarelOOP 2 (2020.10.4) */ public class ObjectWriteProgram extends IKarelProgram { private static final long serialVersionUID = 1L; IKarel karel, k2; @Override protected void onInit() { karel = getIKarel(); k2 = new SerializableKarel(); addIKarel(k2, 3, 5, WEST, 1); } @Override protected void onStart() { karel.move(); karel.move(); k2.move(); k2.turnLeft(); writeObjects(); } private void writeObjects() { try { ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("sample.karel")); out.writeInt(getIKarelCount()); Iterator<IKarel> it = iterator(); while (it.hasNext()) { IKarel karel = it.next(); out.writeObject(karel); } out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { } } public static void main(String[] args) { IKarelProgram.main(args, new SerializableKarel()); } }