개발 공부/Java & Spring

25. 문자기반의 보조스트림

빵다희 2023. 4. 9. 20:12

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