System.out.println("Hello, World");

public class ObjectStreamTest {
	private static String fileName = "D:\\person.obj";//매개변수 받은 객체를 파일로 출력
	public static void writeobject(Object obj){
		//인수로 받은 객체를 person.obj에 출력
		//ObjectOutputStream 이용, 객체를 출력 - 객체 직렬화, 출력 대상 : instance 변수의 값들( attribute)
		
		ObjectOutputStream oos =null;
		try {
			//연결하면서 필터까지 추가한 내용
			oos = new ObjectOutputStream(new FileOutputStream(fileName));
			//쓰기작업시작-writeObject(object)
			oos.writeObject(obj);
			//매개변수로 받은 객체를 넘겨준다.
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(oos!=null)
			{
				try {
					oos.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}		
	}
	public static Object readObject(){
		//person.obj파일에 젖아된 객체 정보를 읽어들여 다시 객체로 만든다.
		//ObjectInputStream - 객체를 입력받는 메소드 : 객체 역직렬화
		//메소드 : readObject() : Objectream
		ObjectInputStream ois = null;
		Object obj = null;
		try {
			ois = new ObjectInputStream (new FileInputStream(fileName));
			//읽기
			obj = ois.readObject();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(ois!=null)
			{
				try {
					ois.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return obj;
		
	}
	public static void main(String[] args) {
		//PersonDTO p = new PersonDTO("id-111","112312","홍길동",123);
		//writeobject(p);//직렬화가 안되서 Exception오류가 나게 된다.
		Object obj = readObject();
		PersonDTO dto = (PersonDTO)obj;
		System.out.println(dto);
	}
}
Posted by 김마농