J2SE 의 서열 화 된 인식

자바 에 서 는 곳곳에서 간단 한 프로 그래 밍 스타일 을 나타 내 고 직렬 화 는 가장 자주 사용 하 는 기능 중 하나 로 자바 에서 의 디자인 은 특히'간단 하 다'.Object InputStream 과 Object OutputStream 의 도움 으로 우 리 는 쉽게 직렬 화 를 실현 할 수 있 습 니 다.우리 클 라 스 가 자바.io.Serializable 인 터 페 이 스 를 실현 하면 Object OutputStream 의 writeObject()방법 으로 대상 을 직렬 화 할 수 있 습 니 다.Object InputStream 의 readObject()방법 을 이용 하여 읽 은 object 대상 을 되 돌려 줍 니 다.Serializable 인 터 페 이 스 는 우리 가 어떤 방법 도 실현 할 필요 가 없다.다음은 하나의 예 입 니 다.이것 은 우리 에 게 감성 적 인 인식 을 줄 수 있 습 니 다.Serial 은 자바.io.Serializable 인터페이스 에 대해 직렬 화 되 어야 하 는 클래스 입 니 다.우 리 는 먼저 Serial 의 대상 serial 1 을 구성 한 다음 에 그것 을 한 파일 에 저장 한 다음 에 그것 을 읽 고 그 내용 을 인쇄 합 니 다.  package Stream;   /**   * @author favo yang   */   import java.io.*;   public class Serial implements Serializable {   int company_id;   String company_addr;   boolean company_flag; public Serial(){}//c++와 달리 없어 도 Public Serial(int companyid,String company_addr,boolean company_flag) {   this.company_id=company_id;   this.company_addr=company_addr;   this.company_flag=company_flag;   }   public static void main(String[] args) {   Serial serial1 = new Serial(752,"dayer street #5 building 02-287",false);//새로운 대상 FileInputStream in=null 만 들 기;  FileOutputStream out=null;   ObjectInputStream oin=null;   ObjectOutputStream oout=null;   try {    out = new FileOutputStream("5.txt");    oout = new ObjectOutputStream(out);    serial1.serialize(oout);//직렬 화 oout.close();   oout=null;    in = new FileInputStream("5.txt");    oin = new ObjectInputStream(in);    Serial serial2 = Serial.deserialize(oin);//역 직렬 화 System.out.println(serial 2);/인쇄 결과}catch(Exception ex){ex.printStackTrace();  } finally{    try {     if (in != null) {      in.close();     }     if (oin != null) {      oin.close();     }     if (out != null) {      out.close();     }     if (oout != null) {      oout.close();     }    } catch (IOException ex1) {     ex1.printStackTrace();    }   }   }   /**   * deserialize   */   public static Serial deserialize(ObjectInputStream oin) throws Exception{   Serial s=(Serial)oin.readObject();   return s;   }   public String toString() {   return "DATA: "+company_id+" "+company_addr+" "+company_flag;   }   /**   * serialize   */   public void serialize(ObjectOutputStream oout) throws Exception{   oout.writeObject(this); }실행 결과:DATA:752 dayer street\#5 building 02-287 false 가 결 과 를 정확하게 인쇄 했 습 니 다.

좋은 웹페이지 즐겨찾기