1️⃣ BufferedReader와 BufferedWriter
- 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 보조스트림.
- BufferedReader의 readLine() 메소드를 사용하면 데이터를 라인 단위로 읽을 수 있다.
- BufferedWriter는 newLine()이라는 줄바꿈 해주는 메서드를 가지고 있다.
예시 ) readLine()을 이용해 파일을 라인단위로 읽은 다음 ";"을 포함하고 있는 라인을 출력해보자.
import java.io.*;
public class BufferedReaderEx1 {
public static void main(String[] args) {
try {
FileReader fr = new FileReader("/Users/user/Documents/workspace/theStandardOfJAVA/src/BufferedReaderEx1.java");
BufferedReader br = new BufferedReader(fr);
String line = "";
for(int i=1; (line = br.readLine()) !=null; i++){
// ";"를 포함한 라인을 출력한다.
if(line.indexOf(";") != -1)
System.out.println(i+":"+line);
}
br.close();
}catch (IOException e){
}
}
}
실행결과 ) BufferedReader의 readLine()을 이용하면 파일에서 특정 문자 또는 문자열을 포함한 라인을 쉽게 찾아낼 수 있다.
1:import java.io.*;
6: FileReader fr = new FileReader("/Users/user/Documents/workspace/theStandardOfJAVA/src/BufferedReaderEx1.java");
7: BufferedReader br = new BufferedReader(fr);
9: String line = "";
10: for(int i=1; (line = br.readLine()) !=null; i++){
11: // ";"를 포함한 라인을 출력한다.
12: if(line.indexOf(";") != -1)
13: System.out.println(i+":"+line);
16: br.close();
2️⃣ InputStreamReader와 OutputStreamWriter
- 바이트기반 스트림을 문자기반 스트림으로 연결시켜주는 역할을 한다.
- 바이트기반 스트림의 데이터를 지정된 인코딩의 문자데이터로 변환하는 작업을 수행한다.
- InputStreamReader로 파일을 읽을때 인코딩을 지정하지 않는다면 OS에서 사용하는 인코딩을 사용해서 파일을 해석하기 때문에 원래 작성된대로 볼 수 없을 수 있다.
- OutputStreamWriter를 이용해서 파일에 텍스트데이터를 저장할때 인코딩을 지정해주지 않으면 OS에서 사용하는 인코딩으로 데이터를 저장한다.
✔️ InputStreamReader의 생성자와 메서드
생성자 / 메서드 | 설명 |
InputStreamReader(InputStream in) | OS에서 사용하는 기본 인코딩의 문자로 변환하는 InputStreamReader를 생성한다. |
InputStreamReader(InputStream in, String encoding) | 지정된 인코딩을 사용하는 inputStreamReader를 생성한다. |
String getEncoding() | InputStreamReader의 인코딩을 알려준다. |
✔️ OutputStreamWriter의 생성자와 메서드
생성자 / 메서드 | 설명 |
OutputStreamWriter(OutputStream out) | OS에서 사용하는 기본 인코딩의 문자로 변환하는 OutputStreamWriter를 생성한다. |
OutputStreamWriter(OutputStream out, String encoding) | 지정된 인코딩을 사용하는 OutputStreamWriter를 생성한다. |
String getEncoding() | OutputStreamWriter의 인코딩을 알려준다. |
728x90
반응형
'개발 공부 > Java & Spring' 카테고리의 다른 글
27. File (0) | 2023.04.17 |
---|---|
26. 표준 입출력과 RandomAccessFile (0) | 2023.04.16 |
24. Collector 구현하기 (0) | 2023.03.29 |
23. 스트림 - collect() (0) | 2023.03.26 |
22. 스트림의 최종연산 (0) | 2023.03.26 |