java.io 패키지

Back-End/API 2019. 4. 21. 17:08
728x90
반응형

-java.io 패키지-

 

자바의 기본적인 데이터 입출력 API 제공
파일 시스템의 정보를 얻기위한 File 클래스와 데이터를 입출력하기 위한 입출력 스트림 클래스를 제공
스트림 클래스는 두종류로 나뉜다.
하나는 바이트(byte)기반 스트림이다. 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 받고 보낼수 있다.
다른 하나는 문자(character)기반 스트림이다. 문자 기반 스트림은 오로지 문자만 받고 보낼 수 있도록 되어있다.

 

 

-InputStream-

 

바이트 기반 입력 스트림의 최상위 클래스로 추상클래스이다.
바이트 기반 입력 스트림은 이 클래스를 상속받아서 만들어진다.

 


1. read() 메소드

 

입력 스트림으로부터 1바이트를 읽고 4바이트 int 타입으로 리턴한다.
더 이상 입력 스트림으로부터 바이트를 읽을 수 없다면 read() 메소드는 -1을 리턴한다.


2.read(byte[]b) 메소드

 

입력 스트림으로부터 매개값으로 주어진 바이트 배열의 길이만큼 바이트를 읽고 배열에 저장한다.
그리고 읽은 바이트 수를 리턴한다.
스트림으로부터 바이트를 더 이상 읽을 수 없다면 -1을 리턴한다.


3.read(bytep[]b,int off, int len) 메소드

 

read(bytep[]b,int off, int len) 메소드는 입력 스트림으로부터 len개의 바이트만큼 읽고, 매개값으로
주어진 바이트 배열 b[off]부터 len개까지 저장한다. 그리고 읽은 바이트 수인 len개를 리턴한다.
또한 read(byte[]b)와의 차이점은 한 번에 읽어들이는 바이트 수를 len 매개값으로 조절 할 수 있고,
배열에서 저장이 시작되는 인덱스를 지정할 수 있다.
만약 off를 0으로, len을 배열의 길이로 준다면 read(byte[]b)와 동일하다.


4.close() 메소드

 

InputStream을 더 이상 사용하지 않을 경우에 시스템 자원을 풀어주는 메소드.

 

 


-OutputStream-

 

바이트 기반 출력 스트림의 최상위 클래스로 추상클래스이다.
바이트 기반 출력 스트림은 이 클래스를 상속받아서 만들어진다.

 


1.write(int b) 메소드

 

write(int b)메소드는 매개 변수로 주어진 int값에서 끝에 있는 1바이트만 출력 스트림으로 보낸다.

 


2.write(byte[]b) 메소드

 

write(byte[]b)는 매개값으로 주어진 바이트 배열의 모든 바이트를 출력 스트림으로 보낸다.

 


3. write(bytep[]b,int off, int len) 메소드

 

write(bytep[]b,int off, int len)은 b[off]부터 len개의 바이트를 출력 스트림으로 보낸다.

 


4.flush() 메소드

 

버퍼에 잔류하고 있는 데이터를 모두 출력시키고 버퍼를 비우는 역할을 한다.
프로그램에서 더 이상 출력할 데이터가 없다면 flush() 메소드를 마지막으로 호출하여
버퍼에 잔류하는 모든 데이터가 출력되도록 해야 한다.

 


5.close() 메소드

 

InputStream을 더 이상 사용하지 않을 경우에 시스템 자원을 풀어주는 메소드.

 

 

-Reader-

 

문자 기반 입력 스트림의 최상의 클래스로 추상클래스이다
모든 문자 기반 입력 스트림은 이 클래스를 상속받아서 만들어진다.

 

 

 

-Writer-

 

문자 기반 출력스트림의 최상의 클래스로 추상클래스이다
모든 문자 기반 출력 스트림은 이 클래스를 상속받아서 만들어진다.

728x90
반응형

'Back-End > API' 카테고리의 다른 글

Spring API ( HttpServletRequest, HttpServletResponse )  (0) 2019.06.27
Spring API (@RequestBody와 ResponseEntity의 차이점)  (0) 2019.06.27
스프링 AOP JoinPoint 객체  (0) 2019.06.23
서블릿 API  (0) 2019.04.30
java.util.stream  (0) 2019.04.20
: