[TIL] 2022.01.13

Minsu Han·2022년 1월 13일
0

TODAY I LEARNED

목록 보기
14/46
post-thumbnail

오늘 한 일

  • JAVA 복습 (chap18. IO 입출력 및 네트워킹 中 IO 입출력)

배운 것

입출력 스트림 : 바이트 기반 스트림(그림, 멀티미디어, 문자 등 모든 데이터), 문자 기반 스트림(문자 데이터)으로 나뉜다.

  • 바이트 기반 스트림: InputStream, OutputStream 및 하위 클래스들
  • 문자 기반 스트림: Reader, Writer 및 하위 클래스들
  • flush(): 출력 종료 시 출력 스트림의 버퍼에 남은 리소스를 모두 출력
  • 콘솔 입출력 스트림: 콘솔에서 키보드로 입력받고 콘솔 화면에 출력하기 위한 입출력 스트림.
    System.in, System.out 각각 InputStream, PrintStream(OutputStream 하위클래스) 타입 필드 제공

보조 스트림 : InputStream/OutputStream과 연결되어 문자 변환, 입출력 성능 향상, 기본 데이터 타입 입출력, 객체 입출력 등의 기능을 제공하는 스트림.

보조스트림 변수 = new 보조스트림(연결스트림)
  • 문자 변환 보조 스트림 : 소스 스트림이 바이트 기반 스트림이면서 입출력 데이터가 문자인 경우 Reader, Writer로 변환하여 사용하기 위함. InputStreamReader, OutputStreamWriter가 있다.
  • 성능 향상 보조 스트림 : 프로그램이 디스크나 외부 소스에 직접 입출력하는 대신 메모리 버퍼(buffer)에 입출력함으로써 입출력 성능을 향상시키기 위함. BufferedInputStream, BufferedReader, BufferedOutputStream, BufferedWriter가 있다.
  • 기본 타입 입출력 보조 스트림 : 바이트 단위로 입출력하는 바이트 기반 스트림에 연결하여 기본 데이터 타입 입출력이 가능하도록 함. DataInputStream, DataOutputStream이 있다.
  • 프린터 보조 스트림 : 콘솔 출력에 사용했던 print(), println() 등의 메소드는 정적 필드 System.out이 PrintStream 타입 객체를 제공한 덕분이다. PrintStream, PrintWriter가 있다.
  • 객체 입출력 보조 스트림 : 객체의 데이터(필드)를 일렬로 늘어선 연속적인 바이트로 변경(직렬화; serialization)하여 입출력하기 위함. 입력 스트림으로 읽어들인 연속적인 바이트를 객체로 복원하는 것은 역직렬화(deserialization)라고 한다. ObjectInputStream, ObjectOutputStream가 있으며, Serializable 인터페이스를 구현한 클래스에 한해 직렬화할 수 있다.

내일 할 일

  • JAVA 복습 (chap18. IO 입출력 및 네트워킹 中 네트워킹)
profile
기록하기

0개의 댓글