단축키

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();
  }
}

0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
List of Articles
번호 분류 제목 글쓴이 조회 수 날짜
공지 뉴스 구글 최신 뉴스 file 덕후냥이 1420 2024.12.12
공지 🚨(뉴비필독) 전체공지 & 포인트안내 8 file 무명의덕질 25962 2024.11.04
공지 URL만 붙여넣으면 끝! 임베드 기능 무명의덕질 20461 2025.01.21
10642 일반 윈도우10이 곧 지원 종료 예정 (윈도우11 PowerToys 설치해보세) newfile 덕후냥이 69 2025.06.10
10641 일반 윈도우에서 바로가기 버튼으로 모니터 화면 자동 전환(가로/세로) 방법 덕후냥이 515 2025.06.05
10640 일반 아 진짜 요새 SKT 해킹 뭐시기 때문에 신경 쓰여 죽겠어 ㅠㅠ 2 덕후냥이 267 2025.05.20
10639 일반 저렴한 중국산 외장 SSD의 실체 file 덕후냥이 540 2025.05.17
10638 일반 인텔 애로우레이크의 CPU 내부 다이 모습 file 덕후냥이 618 2025.05.10
10637 일반 스카이프, 오늘 서비스 종료 file 덕후냥이 621 2025.05.10
10636 일반 SKT "보상 시 고객도 입증책임" file 덕후냥이 644 2025.05.10
10635 정보 KISA, 신규 악성코드 위협 공지...SKT 내부 서버에서 ‘BPF도어’ 악성코드 변종 8종 추... 덕후냥이 605 2025.05.10
10634 일반 “SK하이닉스 내부자에 뚫렸다” 中이직 앞두고 1만여건 기술 유출 file 덕후냥이 585 2025.05.10
10633 일반 기가바이트, 12년만에 메인보드에 새로운 기능을 추가 file 덕후냥이 607 2025.05.10
10632 일반 SKT “위약금 면제 시 수백만명 해지… 분위기 휩쓸려 시장 대혼란” file 덕후냥이 605 2025.05.10
10631 일반 CUDA 툴킷, 맥스웰, 파스칼, 볼타 지원 중단 덕후냥이 620 2025.05.10
10630 일반 그래픽카드를 활용한 암호 해독 벤치마크 file 덕후냥이 610 2025.05.10
10629 일반 애즈락 X870 스틸 레전드 메인보드에서 라이젠 9 9950X CPU가 사망 file 덕후냥이 604 2025.05.10
10628 일반 코어 울트라 200 메인보드, PCIe 5.0 M.2 성능 제한이 있음 file 덕후냥이 579 2025.05.10
10627 일반 시게이트, 2030년까지 100TB 하드디스크 출시 file 덕후냥이 595 2025.05.10
10626 정보 MS가 인텔 18A 공정 계약을 체결? 1 file 덕후냥이 608 2025.05.10
10625 정보 블루투스 6.1 발표. 전력 효율과 보안 향상 file 덕후냥이 626 2025.05.10
10624 정보 중국 Hygon, 128코어 512스레드의 서버 프로세서 로드맵 공개 file 덕후냥이 589 2025.05.10
10623 정보 인텔, 컴퓨텍스에서 아크 프로 B60 24GB를 발표? file 덕후냥이 634 2025.05.10
Board Pagination Prev 1 2 3 4 5 ... 533 Next
/ 533