본문 바로가기
조회 수 1112 추천 수 0 댓글 0

단축키

Prev이전 문서

Next다음 문서

수정 삭제

단축키

Prev이전 문서

Next다음 문서

수정 삭제
Extra Form
PrintWriter/BufferedReader 클래스와 ObjectOutputStream/ObjectInputStream 클래스에 대한 간단한 예제입니다.
 
PrintWriter/BufferedReader 클래스들은 주로 text 기반의 자료를 입출력할때, 유용한 메소드들을 제공하며, ObjectOutputStream/ObjectInputStream 클래스들은 객체 데이터를 입출력할때 유용한 메소드들을 제공합니다.
ObjectInputStream의 경우 스트림의 데이터를 Object로 읽어올 수 있는 메소드(readObject)가 있고, ObjectOutputStream의 경우 Object를 스트림 데이터로 만들 수 있는 메소드(writeObject)가 있습니다.
 
주의할 점은 어떤 OutputStream 객체나 Writer 객체에 데이터를 출력할 때는, flush()를 해 줘야 버퍼에 있던 데이터가 실제로 해당 stream으로 출력이 됩니다. 단순히 close() 메소드를 호출해도 flush() 메소드를 호출하므로 상관은 없습니다. 객체에 데이터를 출력하고 flush()와 close()를 하지 않은 경우 파일은 생성이 되지만 stream 에 기록했던 데이터는 실제 파일에 기록되지 않게 됩니다.
 
마지막으로, 객체의 입출력에 있어서 ObjectOutputStream/ObjectInputStream을 사용하면 자동으로 casting 처리가 되므로 상당히 편리합니다. 여기서 한가지 주의점은 이렇게 자바에서 자동 casting 처리가 지원되는 형태로 객체를 입출력하기 위해서는 Serializable 인터페이스를 구현해 줘야 합니다. 별도의 코드 구현은 없으며, 단순히 클래스 선언에서 Serializable 인터페이스 구현을 명시만 해 주면 됩니다.
 
그럼 예제 소스 나갑니다.
 
 
 
import java.util.Date;
import java.io.*;
 
public class TestFileOutput implements Serializable
{
  private int iData;
  private String sData;
  private Date oData;
 
  public TestFileOutput() {
    iData = 8080;
    sData = "Hello World!";
    oData = new Date();
  }
 
  public void writeObjectOutputStream() throws Exception {
    FileOutputStream fout = new FileOutputStream("objoutput.txt");
    ObjectOutputStream out = new ObjectOutputStream(fout);
 
    out.writeObject(this);
    out.flush();
    out.close();
  }
 
  public void writePrintWriter() throws Exception {
    FileOutputStream fout = new FileOutputStream("printwriter.txt");
    PrintWriter out = new PrintWriter(fout);
 
    out.println(this.iData);
    out.println(this.sData);
    out.println(this.oData);
    out.flush();
    out.close();
  }
 
  public static void readFromFile() throws Exception {
    FileInputStream fin = new FileInputStream("objoutput.txt");
    ObjectInputStream oin = new ObjectInputStream(fin);
    System.out.println("--- read data from objoutput.txt ---");
    TestFileOutput tmp = (TestFileOutput) oin.readObject();
 
    System.out.println(tmp.iData);
    System.out.println(tmp.sData);
    System.out.println(tmp.oData);
 
    oin.close();
 
    fin = new FileInputStream("printwriter.txt");
    BufferedReader bin = new BufferedReader(new InputStreamReader(fin));
    String line = null;
    System.out.println("--- read data from printwriter.txt ---");
    while((line = bin.readLine()) != null)
      System.out.println(line);
 
    bin.close();
  }   
 
  public static void main(String args[]) throws Exception {
    TestFileOutput test = new TestFileOutput();
 
    test.writeObjectOutputStream();
    test.writePrintWriter();
 
    readFromFile();
  }
}

List of Articles
번호 분류 제목 날짜 조회 수
공지 유머 🚨(뉴비필독) 전체공지 & 포인트안내 13 2024.11.04 27195
공지 이슈 URL만 붙여넣으면 끝! 임베드 기능 2025.01.21 21482
380409 유머     [이벤트] 증권플러스에서 공짜 비트코인 받기 file 2024.10.17 519
380408 유머     [이벤트] 증권플러스에서 공짜 비트코인 받기 file 2024.10.17 1689
380407 SNS   왕이보는 새로운 장을 탐험하기 위해 동굴 속으로 들어갑니다 2024.09.19 78
380406 ​ 지금은 지수예측이 무의미한 시기인듯.... ​ 시장은 강하다~~~!! ​ 2023.06.16 339
380405 유머  [이벤트] 증권플러스에서 공짜 비트코인 받기 file 2024.10.14 76
380404 Video📽  [입덕직캠] TXT 연준 직캠 4K 'Chasing That Feeling' (TXT YEONJUN FanCam 2023.10.19 file 2023.10.22 2323
380403  "남자 나이 33살이면 아저씨인가요?" 여초 반응 file 2024.02.09 273
380402  "외국인이죠?" 물어 보는 일본 식당 file 2024.05.12 32
380401 데이터  #슈퍼그럼요 응원법 💖 #우정! 힘들땐 어깨를 빌려줄게💖 2022.01.08 250
380400 사진  230504 MCD 공트 file 2023.05.05 365
380399  50년만에 국내 판매 중단되는 음료수. file 2022.06.17 831
380398 정보  NCT 해찬, 튀르키예·시리아 지진 복구 1억원 기부 "마음 아팠다"[공식] 2023.02.17 1784
380397 잡담  우리 영원한 막둥이 지헌아,헌이가 항상 플로버에게 보여주는 밝고 예쁜 모습들 file 2024.04.17 302
380396  이선균, 드리워진 어둠의 그림자 file 2023.10.28 1783
380395  인도네시아에서 인기라는 결혼식 file 2021.04.20 39
380394 `똥꼬빤다`의 유래 ㄷ..JPG file 2023.10.31 966
380393 `똥꼬빤다`의 유래.JPG file 2023.10.31 751
380392 잡담 `보안` 차별성 강조하는 애플…이번엔 M1 맥에 보안 최강 - 매일경제 - 매일경제 2023.03.27 80
380391 정보 `보안` 차별성 강조하는 애플…이번엔 M1 맥에 보안 최강 - 매일경제 - 매일경제 2021.02.21 726
380390 `여친, 부인 유흥업소 경력 확인해준다`...`X녀탐정` 다시 성행 file 2022.08.03 1081
380389 `원정유흥`다니는 2030... ??? file 2021.07.14 43
380388 `진짜`들의 단톡방에 들어간 평범한 오타쿠.jpg file 2022.04.07 359
380387 `청소` 남자 직원만 하는 건 부당해` vs `오랜 관행인데 어쩌라고` file 2023.08.26 547
380386 SNS ^^ 2023.07.31 332
380385 ^^ 1 2022.08.04 818
380384 잡담 ^^ 2022.01.19 38
380383 잡담 ^^7 file 2021.10.17 137
380382 ^_______^ 2023.07.08 24
380381 ^_______^ 2023.07.08 106
380380 데이터 ^웃음 히어로^ 'YENA(최예나)'의 'SMILEY (Feat. BIBI)' @220127 엠카운트다운 2022.01.27 41
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 12681 Next
/ 12681