객체를 읽고 쓰는 클래스들
객체를 파일에 읽고 쓰기 위해서는 ObjectInputStream 클래스와 ObjectOutputStream 클래스를 사용해야 합니다.
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("output.dat"));
선언 후 out.writeObject(객체)메소드를 통해 객체를 출력할 수 있습니다.
이 메소드는 직렬화 가능 객체(serializable object)만 출력할 수 있습니다.
여기서 직렬화(serialization)란 객체를 스트림으로 만드는 것을 의미합니다.
사용할 클래스가 직렬화가 가능한지 여부는 API(http://docs.oracle.com/javase/7/docs/api/)를 확인해보면 알 수 있습니다.
GregorianCalender클래스를 이용하여 객체를 파일에 저장하는 ObjectOutputEx.java
import java.io.*; import java.util.*; class ObjectOutputEx { public static void main(String args[]){ ObjectOutputStream out = null; try{ out = new ObjectOutputStream(new FileOutputStream("output3.dat")); out.writeObject(new GregorianCalendar(2013,9,29)); //month 데이터는 한달을 뺌. out.writeObject(new GregorianCalendar(2013,9,30)); out.writeObject(new GregorianCalendar(2013,9,31)); //직렬화가 가능한 클래스만 writeObject 로....할수있다 }catch(IOException e){ System.out.println("파일로 출력 불가"); }finally{ try{ out.close(); }catch(Exception e){ } } } }
선언하고 파일을 쓰는 방식은 이전과 동일합니다.
다만 GregorianCalendar 클래스에서 월에 데이터를 입력할 때는 1을 빼서 입력합니다.
( 0 = 1월 , 1 = 2월 , 2 = 3월 , 3 = 4월 , 4 = 5월 , 5 = 6월 , 6 = 7월 , 7 = 8월 , 8 = 9월 , 9 = 10월 , 10 = 11월 , 11 = 12월)
GregorianCalender클래스를 이용하여 객체를 파일로부터 읽는 ObjectInputEx.java
'2013 > Java' 카테고리의 다른 글
[Java] Radom클래스(1) (0) | 2013.11.08 |
---|---|
[Java] StringTokenizer 클래스(1) (0) | 2013.11.07 |
[Java] 파일 입출력에 사용되는 자바 클래스들(3) (0) | 2013.11.05 |
[Java] 자판기 프로그램(2) (0) | 2013.10.31 |
[Java] 자판기 프로그램(1) (0) | 2013.10.31 |
[Java] 파일 입출력에 사용되는 자바 클래스들(2) (0) | 2013.10.30 |