본문 바로가기

컴퓨터/노트북/인터넷

IT 컴퓨터 기기를 좋아하는 사람들의 모임방

조회 수 1110 추천 수 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();
  }
}

컴퓨터/노트북/인터넷

IT 컴퓨터 기기를 좋아하는 사람들의 모임방

List of Articles
번호 분류 제목 조회 수 날짜
공지 뉴스 구글 최신 뉴스 file 1385 2024.12.12
HOT글 일반 아 진짜 요새 SKT 해킹 뭐시기 때문에 신경 쓰여 죽겠어 ㅠㅠ 2 237 2025.05.20
공지 사랑LOVE 포인트 만렙! 도전 4674 2025.03.19
공지 🚨(뉴비필독) 전체공지 & 포인트안내 2 25851 2024.11.04
공지 URL만 붙여넣으면 끝! 임베드 기능 20432 2025.01.21
10640 PHP에 다중 코어를 사용하는 방법 1 1409 2023.03.30
10639 CPU 코어 수보다 더 많은 PHP-FPM 자식을 실행하는 것이 맞습니까? 2 1441 2023.03.30
10638 유튜브 8k를 틀면 왜 버벅대는 건가요? 1 1349 2023.04.03
10637 혹시 중고 그래픽카드 as는 어떻게 얘기하구 받아야하나요?? 2 1949 2023.04.03
10636 다운로드 속도가 옳게 나오고 있는건가요? 1 1937 2023.04.03
10635 LG그램 노트북이 느려요. nvme ssd 캐시값에도 영향이 있나요? 1 3148 2023.05.01
10634 3440X1440 해상도 그래픽카드 추천부탁드립니다 2 3244 2023.05.01
10633 Nvme 아무데나 꽂아도 됨? 1 file 362 2023.05.05
10632 설계용 노트북 추천 1 372 2023.05.05
10631 휴대폰 기종 뭔지 아시는 선생님 계실까요 1 file 389 2023.05.05
10630 아ㅋㅋ 하드디스크 이거 망한 거지? file 388 2023.05.05
10629 HDD 8TB 할인 존버성공!! 2 375 2023.05.05
10628 알뜰로 가게 좀 도와조... 2 354 2023.05.05
10627 빅스떄노릴만한노트북추천해주세용 1 392 2023.05.05
10626 RX6600에서 3060Ti으로 1 352 2023.05.05
10625 5800x3d는 더이상 가격 안내려가겠지? 1 408 2023.05.05
10624 키보드 25만원이하로 사려는데 다 비슷하나요? 382 2023.05.05
10623 제 씨퓨 내장그래픽 안되는 제품인가요? 1 file 349 2023.05.05
10622 혹시 컴퓨터 의자 관심있으시거나 잘 아시는분 계실까요? 2 360 2023.05.05
10621 l3 캐쉬 메모리가 차이 나면 어떤게 체감이 오는건가요? 2 file 648 2023.05.22
10620 L3 캐쉬 유무 성능차이 1 863 2023.05.22
10619 기가바이트 Z790 어로스 익스트림 X, 디스플레이 내장 file 479 2023.06.02
10618 TSMC N3, SRAM 확장이 많이 어려워짐 file 461 2023.06.02
10617 젠슨황: 인텔 파운드리로 테스트 칩 생산함. 잘 작동 346 2023.06.02
10616 AMD, 라이젠 AI의 추론 처리를 시연 772 2023.06.02
10615 SK하이닉스 10나노급 5세대 DDR5, 세계 최초로 데이터센터 호환성 검증 돌입 716 2023.06.02
10614 중국 무어 스레드, 3584 코어와 7GB GDDR6 메모리의 MTT S70 GPU file 599 2023.06.02
10613 인텔 메테오레이크로 추측되는 CPU가 탑재된 MSI 노트북 file 437 2023.06.02
10612 ASUS, 360mm 일체형 수냉 쿨러와 리퀴드 메탈을 쓴 ROG 매트릭스 지포스 RTX 4090 file 814 2023.06.02
10611 엘더레이크 vs 랩터레이크 vs 사파이어래피즈 간의 다이 샷 비교 file 666 2023.06.02
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 355 Next
/ 355