▷ 기본 미션: 입출력 스트림 요약 정리하여 포스팅하기
자바에서 데이터는 스트림(Stream)을 통해 입출력된다. 프로그램이 도착지이면 입력 스트림을, 프로그램이 출발지이면 데이터를 출력해야 하므로 출력 스트림을 사용한다.
💡 입출력 스트림의 종류
- 바이트 기반 스트림: 그림, 멀티미디어 등의 바이너리 데이터를 읽고 출력할 때 사용
- 문자 기반 스트림: 문자 데이터를 읽고 출력할 때 사용
구분 | 바이트 기반 스트림 | 문자 기반 스트림 | |||
입력 스트림 | 출력 스트림 | 입력 스트림 | 출력 스트림 | ||
최상위 클래스 | InputStream | OutputStream | Reader | Writer | |
하위 클래스 (예) | XXXInputStream (FileInputStream) |
XXXOutputStream (FileOutputStream) |
XXXReader (FileReader) |
XXXWriter (FileWriter) |
OutputStream
모든 바이트 기반 출력 스트림 클래스는 OutputStream 클래스를 상속받아서 만들어진다.
OutputStream의 주요 메소드
write(int b), write(byte[] b), write(byte[] b, int off, int len), flush(), close()
InputStream
모든 바이트 기반 입력 스트림은 InputStream 클래스를 상속받아서 만들어진다.
InputStream의 주요 메소드
read(), read(byte[] b), read(byte[] b, int off, int len), close()
Writer
모든 문자 기반 출력 스트림 클래스는 Writer 클래스를 상속받아서 만들어진다.
Writer의 주요 메소드
write(int c), write(char[] cbuf), write(char[] cbuf, int off, int len), write(String str),
write(String str, int off, int len), flush(), close()
Reader
모든 문자 기반 입력 스트림은 Reader 클래스를 상속받아서 만들어진다.
Reader의 주요 메소드
read(), read(char[] cbuf), read(char[] cbuf, int off, int len), close()
▷ 선택 미션: p. 632 문제 2번 풀고, 풀이 과정 설명하기
- AddLineNumberExample.java
package sec02.verify.exam02;
import java.io.BufferedReader;
import java.io.FileReader;
public class AddLineNumberExample {
public static void main(String[] args) throws Exception {
String filePath = "src/sec02/verify/exam02/AddLineNumberExample.java";
FileReader fr = new FileReader(filePath);
BufferedReader br = new BufferedReader(fr);
int rowNumber = 0;
String rowData;
while((rowData=br.readLine()) != null) {
System.out.println(++rowNumber + ": " + rowData);
}
br.close();
}
}
'혼공자' 카테고리의 다른 글
[혼공단 7기] 혼자 공부하는 자바 5주차 (0) | 2022.02.20 |
---|---|
[혼공단 7기] 혼자 공부하는 자바 4주차 (0) | 2022.02.13 |
[혼공단 7기] 혼자 공부하는 자바 3주차 (0) | 2022.01.31 |
[혼공단 7기] 혼자 공부하는 자바 2주차 (0) | 2022.01.23 |
[혼공단 7기] 혼자 공부하는 자바 1주차 (0) | 2022.01.16 |