입출력 스트림과 파일 입출력

장민식·2021년 12월 14일
0

입출력 스트림

  • 버퍼를 가지고 순차적으로 이루어지는 입출력

  • 입력 스트림:입력 장치로부터 자바 프로그램으로 데이터를 전달(키보드 등)

  • 출력 스트림:출력장치로 데이터 출력(모니터,파일저장 등)

특징

  • 스트림의 양끝에 입출력 장치와 자바 으용프로그램 연결
  • 스트림은 단방향
    -입력과 출력을 동시에 하는 스트림 없음
  • 입출력 스트림 기본단위

-바이트스트림의 경우:바이트

  • 입출력되는 데이터를 단순 바이트로 처리(바이너리 파일을 읽는 입력 스트림)
    에)

-문자스트림의 경우:문자

  • 문자만 입력하는 스트림
  • 문자가 아닌 바이너리 데이터는 스트림에서 처리하지 못함(텍스트 파일을 읽는 입력 스트림)
    -선입 선출 구조

스트림의 작동 구조
예)

블록(read())

  • 파일이 큰 경우 한 번에 한 문자씩 읽으면 읽는 속도가 너무 느리기 떄문에, 다음과 같이 한 번에 한 블록(버퍼크기)만큼 읽는 read()를 이용하면 된다.

예)

char[]buf=new char[1024];
int n=fin.read(buf);//한번에 1024개 문자를 읽어 buf[]에 저장,실제 읽은 문자수 리턴

버퍼 스트림

  • 버퍼를 가진 스트림이다.
  • 입출력 데이터를 일시적으로 저장하는 버퍼를 이용하여 입출력 효율 개선

목적

  • 입출력 시 운영체제의 API 호출 횟수를 줄여 이출력 성능 개선
  • 출력시 여러 번 출력되는 데이터를 버퍼에 모아두고 한 번에 장치로 출력

바이트 버퍼 스트림

  • 바이트 단위의 바이너리 데이터를 처리하는 버퍼 스트림
  • BufferedinputStream와 BufferedOutputStream 이 있다

문자 버퍼 스트림

  • 유니코드의 문자 데이터만 처리하는 버퍼 스트림
  • BufferedReader와 BufferedWriter 이 있다

File 클래스
- 파일의 경로명을 다루는 클래스

  • java.io.File
  • 파일과 디렉터리 경로명의 추상적 표현

- 파일 관리 기능

  • 파일 이름 변경,삭제,디렉터리 생성, 크기 등 파일 관리
  • File 객체는 파일 읽고 쓰기 기능 없음.
    에)
profile
피나게노력중

0개의 댓글