[Study] Java | 14 입출력 스트림

DAVEMINS·2023년 10월 17일

Java

목록 보기
14/15
post-thumbnail

14-1 입출력 스트림

  • 입출력 스트림의 종류

스트림 : 단일 방향으로 연속적으로 흘러가는 것

바이트 기반 스트림 : 그림 멀티 미디어 등의 바이너리 데이터를 읽고 출력할 때 사용

문자 기반 스트림 : 문자 데이터를 읽고 출력할 때 사용

  • 바이트 출력 스트림 : OutputStream

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

write(), flush(), close() 메소드 사용 가능

  • 바이트 입력 스트림 : InputStream

바이트 기반 입력 스트림의 최상위 클래스로 추상클래스이다

read(), close() 메소드 사용 가능

  • 문자 출력 스트림 : Writer

문자 기반 출력 스트림의 최상위 클래스로 추상클래스이다

write(), flush(), close() 메소드 사용 가능

  • 문자 입력 스트림 : Reader

문자 기반 입력 스트림의 최상위 클래스로 추상클래스이다

read(), close() 메소드 사용 가능

14-2 보조 스트림

  • 보조 스트림 연결하기

보조 스트림 : 다른 스트림과 연결이 되어 여러가지 편리한 기능(문자 변환, 입출력 성능 향상, 기본 타입 입출력)을 제공해주는 스트림

  • 문자 변환 보조 스트림

OutputStreamWriter, InputStreamReader

소스 스트림이 바이트 기반 스트림이면서 입출력 데이터가 문자일 때 Reader와 Writer로 변환해서 사용하는 것을 고려할 수 있다

  • 성능 향상 보조 스트림

BufferedOutputStream, BufferedInputStream, BufferedWriter, BufferedReader

메모리 버퍼를 추가로 제공하여 프로그램의 실행 성능을 향상시키는 스트림이다

  • 기본 타입 입출력 보조 스트림

DataInputStream DataOutputStream

출력한 데이터를 다시 읽어올 때는 출력한 순서와 동일한 순서로 읽어야 한다

  • 프린터 보조 스트림

PrintStream PrintWriter

  • 객체 입출력 보조 스트림

ObjectOutputStream : 객체를 직렬화(객체를 바이트 배열로 만드는 것)하는 역할

ObjectInputStream : 객체를 역직렬화(바이트 배열을 객체로 만드는 것)하는 역할

java.io.Serializable 인터페이스를 구현한 객체를 직렬화한다

💡 throws : 예외 떠넘기기

14-3 입출력 관련 API

  • System.in 필드

콘솔 : 시스템을 사용하기 위해 키보드로 입력받고 모니터로 출력하는 소프트웨어

System.in : 콘솔에서 키보드의 데이터를 입력받을 수 있게 함

  • System.out 필드

System.out : 콘솔에서 모니터로 데이터를 출력할 수 있게 함

  • Scanner 클래스

Scanner : 문자 배열이나 바이트 기반 입력 스트림에서 라인 단위 문자열을 쉽게 읽도록 하기 위해 java.util 패키지에서 제공하는 클래스이다

  • File 클래스

File 클래스 : 파일 및 폴더 (디렉터리) 정보를 제공해주는 역할을 한다

0개의 댓글