본문 바로가기
Develop

이것이 자바다 - IO 기반 입출력 및 네트워킹

by _dreamgirl 2020. 2. 22.
반응형

이것이 자바다 - IO 기반 입출력 및 네트워킹

 

자바에서 데이터는 스트림(Stream)을 통해 입출력되므로 스트립의 특징을 잘 이해해야 한다.

프로그램이 데이터를 입력 받을 때 입력 스트림(Input Stream)이라고 부르고

프로그램이 데이터를 내 보낼때에는 출력 스트림(Output Stream)이라고 부른다.

 

InputStream

  • 바이트 기반 입력 스트림의 최상위 클래스로 추상 클래스다.
  • read
  • 바이트를 읽을 수 없을때 -1를 반환

 

OutputStream

  • 바이트 기반 출력 스트림의 최상위 클래스로 추상 클래스다.
  • Write

 

Reader

  • 문자 기반 입력 스트림의 최상위 클래스로 추상 클래스다.
  • read() : 입력 스트림으로부터 한개의 문자(2바이트)씩 읽는다. 

 

Writer

  • 문자 기반 출력 스트림의 최상위 클래스로 추상 클래스다.
  • write() :  한 문자(2바이트)씩 출력 스트림으로 내보낸다.
  • flush() : 버퍼에 잔류하고 있는 데이터를 모두 출력한다.
  • close() : 시스템 자원을 종료한다.

 

 

콘솔 입출력

 

파일 입출력

  • FileInputStream / FileOutputStream
  • FileReader / FileWriter

 

보조 스트림

  • InputStreamReader / OutputStreamWriter
  • 바이트 기반 스트림 BufferedInputStream / BufferedOutputStream
  • 문자 기반 스트림 BufferedReader / BufferedWriter
  • 기본 타입 입출력 보조 스트림 DataInputStream / DataOutputStream
  • 객체 입출력 보조 스트림 ObjectInputStream / ObjectOutputStream

 

직렬화가 가능한 클래스(Serializable)

  • Static 또는 transient가 붙어있는 경우에는 직렬화가 되지 않음
  • 역직렬화할 때는 직렬화 했을 때와 같은 클래스를 사용해야함, 클래스 이름만 같아도 내용이 변경되는 역직렬화가 실패한다.

 

 

 

 

 

 

 

 

반응형

댓글