자바 입출력(I/O) - 객체(Obejct) 입출력
앎/web 2014. 2. 24. 17:50 |객체의 입출력은 스트림 기반이다.
객체의 입출력에는 직렬화가 필요하다. 이를 위해 java.io.Serializable 이라는 인터페이스를 사용한다.
사용할 객체의 클래스 선언부에 'implements Serializable'를 쓰면된다.
class 클래스명 implements Serializable { .... }
유형별 객체 출력
FIle
File f = new File("파일이름"); FileOutputStream fos = new FileOutputStream(f, true); BufferedOutputStream bos = new BufferedOutputStream(fos); ObjectOutputStream oos = new ObjectOutputStream(bos);\
유형별 객체 입력
FIle
File f = new File("./object_io_test.txt"); FileInputStream fis = new FileInputStream(f); BufferedInputStream bis = new BufferedInputStream(fis); ObjectInputStream ois = new ObjectInputStream(bis);
예제)
테스트 객체
import java.io.*; public class TestClass1 implements Serializable { private byte a; private int b; private float c; private String d; public byte getA() { return a; } public void setA(byte a) { this.a = a; } public int getB() { return b; } public void setB(int b) { this.b = b; } public float getC() { return c; } public void setC(float c) { this.c = c; } public String getD() { return d; } public void setD(String d) { this.d = d; } public String toString() { return this.a + " / " + this.b + " / " + this.c + " / " + this.d; } }
출력
import java.io.*; public class ObjectOutputTest { public static void main(String[] ar) { try { File f = new File("./object_io_test.txt"); FileOutputStream fos = new FileOutputStream(f, true); BufferedOutputStream bos = new BufferedOutputStream(fos); ObjectOutputStream oos = new ObjectOutputStream(bos); TestClass1 tc1 = new TestClass1(); tc1.setA((byte)97); tc1.setB(18); tc1.setC(12.8f); tc1.setD("test1"); TestClass1 tc2 = new TestClass1(); tc2.setA((byte)98); tc2.setB(28); tc2.setC(22.8f); tc2.setD("test2"); oos.writeObject(tc1); oos.writeObject(tc2); oos.close(); } catch (Exception ex) { } } }
입력
import java.io.*; public class ObjectInputTest { public static void main(String[] ar) { try { File f = new File("./object_io_test.txt"); FileInputStream fis = new FileInputStream(f); BufferedInputStream bis = new BufferedInputStream(fis); ObjectInputStream ois = new ObjectInputStream(bis); TestClass1 tc1 = (TestClass1)ois.readObject(); TestClass1 tc2 = (TestClass1)ois.readObject(); ois.close(); System.out.println("tc1: " + tc1.toString()); System.out.println("tc2: " + tc2.toString()); } catch (Exception ex) { } } }
객체를 파일로 출력 후 입력 테스트를 해보면 다음과 같이 읽힐 것이다.
'앎 > web' 카테고리의 다른 글
[Servlet] 웹 프로그램의 파일 구조 (0) | 2014.02.27 |
---|---|
[Servlet] MVC 패턴 (0) | 2014.02.26 |
자바 입출력(I/O) - 텍스트(Text) 입출력 (0) | 2014.02.24 |
자바 입출력(I/O) - 스트림(Stream) 입출력 (0) | 2014.02.24 |
[Java Script] 사용자 정의 객체 & 내장 객체 (0) | 2014.02.18 |