본문 바로가기
인천일보아카데미/- 학습일지

[학습일지]JAVA교육일지 36일차

by w1z 2022. 6. 14.

입출력(INPUT/OUTPUT)

  • 스트림(Stream)
  • 입력스트림(InputStream) / 출력스트림(OutputStream)
  • 문자기반 스트림 (Reader / Writer)

입출력(INPUT/OUTPUT)

1. 스트림(Stream)

 [정의]

 - 데이터를 운반하는 사용되는 연결통로(단방향 통신)

 - 1개의 스트림으로 입력, 출력을 동시에 처리 할 수 없다.

출처:https://kerpect.tistory.com/52

 

 

2. 입력스트림(InputStream) / 출력스트림(OutputStream)

[정의]

- 모든 바이트기반 스트림의 조상이다.

- InputStream의 read() : 읽기

- OutputStream의 write(int b) : 쓰기

- FileInputStream / FileOutputStream은 파일에 입출력을 하기 위한 스트링이며 가장 많이 사용되는 스트림이다.

 

[바이트기반의 보조스트림]

- BufferedInputStream / BufferedOutputStream

- 스트림의 입출력 효율을 높이기 위해 버퍼를 사용하는 보조스트림이다.

- 한 byte씩 입출력하는 것 보다는 buffer(byte[])를 이용해서 한번에 여러 바이트를 입출력하는 것이 빠르기 때문에 대부분의 입출력 작업에 사용된다.

출처: https://kerpect.tistory.com/52

 

3. 문자기반 스트림 (Reader / Writer)

[정의]

- 문자데이터를 사용하는 char[] 기반 스트림

- 모든 문자기반의 스트림의 조상이다.

- I/O에서 쓰이는 byte[] 대신 char[]을 사용한다.

 

[FileReader / FileWriter]

- 파일로부터 텍스트 데이터를 읽고, 파일에 쓰는데 사용된다.

- FileInputStream / FIleOutputStream 과의 차이점은 Reader / Writer는 인코딩과 자바에서 사용하는 유니코드(UTF-16)간의 변환을 자동적으로 처리해준다.

 

[문자기반의 보조스트림]

- BufferedReader / BufferedWriter

- 정의는 바이트기반의 Buffered와 동일하다. (입출력 효율을 높이기 위해 사용)

- BufferedReader의 readLine() 을 사용하면 데이터를 라인단위로 읽을 수 있다.

- BufferedWriter의 newLine() 이라는 줄바꿈 해주는 메서드를 가지고있다.

출처: https://kerpect.tistory.com/52


MEMO>

 

# 데이터 구조는 CSV(comma-separated values) 형식을 갖는것이 좋다. (콤마로 구분)