본문 바로가기

JAVA

JAVA(2022.05.25)-자바IO

자바IO

- Input과 Output의 약자이다 

- 내부 또는 외부장치와 프로그램 간의 데이터를 전송가능케 하는 지점 

 

Stream

- 입력이나 출력이 표현된 데이터의 흐름 

- 운영체제에 의해 생성된 가상의 연결 고리이자 중간 매개자

- 한 방향으로만 통신할 수 있으므로 입력과 출력을 동시 처리 불가 

- 입력 스트림(InputStream)과 출력 스트림(OutputStream)으로 나뉨 

- 인스턴스를 생성해서 사용해야함 

 

InputStream

 

method explanation
abstract int read() 해당 입력 스트림으로부터 다음 바이트를 읽어들임
int read(byte[] b) 해당 입력 스트림으로부터 특정 바이트를 읽어들인 후, 배열 b에 저장함
int read(byte[] b, int off, int len) 해당 입력 스트림으로부터 len 바이트를 읽어들인 후, 배열 b[off]부터 저장함 

 

OutputStream

method explanation
abstract void write(int b) 해당 출력 스트림에 특정 바이트를 저장함
void write(byte[] b) 배열 b의 특정 바이트를 배열 b의 길이만큼 해당 출력 스트림에 저장함
void write(byte[]b, int off, int len) 배열 b[off]부터 len 바이트를 해당 출력 스트림에 저장함 

자바에서 스트림은 기본적으로 바이트 단위로 데이터를 전송한다 

 

바이트 기반 스트림

 

입력 스트림 출력 스트림 입출력 대상 
FileInputStream FileOutputStream 파일
ByteArrayInputStream ByteArrayOutputStream 메모리
PipedInputStream PipedOutputStream 프로세스
AudioInputStream AudioOutputStream 오디오 장치

보조 스트림

출처 : TCPSCHOOL.COM(http://www.tcpschool.com/java/java_io_stream)

 

문자 기반 스트림

입력 스트림 출력 스트림 입출력 대상
FileReader FileWriter 파일
CharArrayReader CharArrayWriter 메모리
PipedReader PipedWriter 프로세스
StringReader PipedWriter 문자열

 

보조 스트림

출처 : TCPSCHOOL.COM(http://www.tcpschool.com/java/java_io_stream)

Reader

 

- FileReader

- BufferedReader

- InputStreamReader

 

ex)

Reader reader = null;
reader = new FileReader(파일명);
reader.read() //파일을 읽음

 

Writer

 

- FileWriter

- BufferedWriter

- PrintWriter

- OutputStreamWriter

 

ex)

Writer writer = new FileWriter(파일이름);  //파일을 읽는 writer 생성
writer.write(data); //파일을 작성한다
writer.close(); //writer 종료

 

사용자에게 값 받기 

 

  • System.in

ex)

InputStream is = System.in;  //값 입력받는 객체 생성 
is.read() //파일을 읽는 것
  • Scanner 

ex)

Scanner sc = new Scanner(System.in);
String nextword = sc.nextLine() // 다음문장을 받음

 

 

 

 

추가적인 구체적 사항은 더 공부하고 정리하도록 해야겠다 

 

 

 

 

 

 

 

 

 

 

 

*위 게시물은 TCP.SCHOOL.COM의 java를 보며 복습한 내용을 작성한 글입니다*

'JAVA' 카테고리의 다른 글

JAVA(2022.05.27) - Byte 단위 입출력 심화  (0) 2022.05.27
JAVA(2022.05.26) - Byte단위 입출력  (0) 2022.05.26
JAVA(2022.05.24)-java.time패키지  (0) 2022.05.24
JAVA(2022.05.23)-Date,Calendar  (0) 2022.05.23
JAVA(2022.05.22)-Generic  (0) 2022.05.22