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());
	}
}
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기