InputStream, OutputStream, Reader, Writer

오정환·2022년 11월 30일
0

Stream

자바에서 데이터는 스트림을 통해 입출력 된다. 스트림은 단방향 통신을 한다는 특징이 있기 때문에 입력 스트림과 출력 스트림이 따로 있다.

  • 입력 스트림 (InputStream) - 프로그램이 데이터를 입력받을 때
  • 출력 스트림 (OutputStream) - 프로그램이 데이터를 보낼 때

InputStream

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

주요 메서드 종류

read( )

입력 스트림으로부터 1바이트를 읽고 읽은 바이트를 리턴
리턴타입 - int

read( byte[ ] b )

입력 스트림으로부터 읽은 바이트들을 매개값으로 주어진 바이트배열 b에 저장하고 실제로 읽은 바이트 수를 리턴. 더 이상 읽을 수 없다면 -1 리턴
리턴타입 - int

read( byte[ ] b, int, off, int len )

입력 스트림으로 부터 len 개의 바이트만큼 읽고 매개값으로 주어진 바이트배열 b[off]부터 len개 까지 저장후 실제 읽은 바이트 수인 len개를 리턴. 더 이상 읽을 수 없다면 -1 리턴
리턴타입 - int

close( )

이용한 시스템 자원을 반납하고 입력스트림을 종료
리턴타입 - int

OutputStream

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

주요 메서드 종류

write( int b)

출력 스트림으로부터 1바이트를 보냄 (b의 끝 1바이트)
리턴타입 - void

write( byte[ ] b)

출력 스트림으로부터 주어진 바이트 배열 b의 모든 바이트를 보냄
리턴타입 - void

write( byte[ ] b, int off, int len )

출력 스트림으로 주어진 바이트 배열 b[off]부터 len개까지의 바이트를 보냄
리턴타입 - void

flush( )

버퍼에 잔류하는 모든 바이트를 출력
리턴타입 - void

close( )

사용한 시스템 자원을 반납하고 출력 스트림을 닫는다.
리턴타입 - void

Reader

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

주요 메서드 종류

read( )

입력 스트림으로부터 한 개의 문자를 읽고 리턴
리턴타입 - int

read( char[ ] cBuf)

입력 스트림으로 부터 읽은 문자들을 매개값으로 주어진 문자 배열 cBuf에 저장하고 실제로 읽은 문자 수를 리턴
리턴타입 - int

read( char[ ] cBuf, int off, int len)

입력 스트림으로부터 len개의 문자를 읽고 매개값으로 주어진 문자 배열 cBuf[ off ]부터 len개 저장하고 실제로 읽은 문자 수를 리턴
리턴타입 - int

close( )

사용한 시스템 자원을 반납하고 입력 스트림 닫음
( Reader를 더 이상 사용하지 않을 경우 호출 )
리턴타입 - void

Writer

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

주요 메서드 종류

write( int c )

출력 스트림으로 한 문자를 보냄 ( c의 끝 2byte )
리턴타입 - void

write( char[ ] cBUf )

출력 스트림으로 주어진 문자 배열 cBuf의 모든 문자를 보냄
리턴타입 - void

write(char[ ] cBuf, int off, int len)

출력 스트림으로 주어진 문자 배열 cBuf[ off ] 부터 len개의 문자를 보냄
리턴타입 - void

write( String str )

출력 스트림으로 주어진 문자열을 전부 보냄
리턴타입 - void

write( String str, int off, int len )

출력 스트림으로 주어진 문자열 off번 째 부터 len개의 문자를 보냄
리턴타입 - void

flush( )

버퍼에 잔류하는 모든 문자열을 출력
( 버퍼를 비우는 역할 )
리턴타입 - void

close( )

사용한 시스템 자원을 반납하고 출력 스트림을 닫음
( OutputStream을 더 이상 사용하지 않을 경우에 호출)
리턴타입 - void

0개의 댓글