JAVA/포스팅

자바 OutputStreamWriter

짜집퍼박사(짜박) 2023. 11. 26. 15:50

OutputStreamWriter는 바이트 출력 스트림을 문자 출력 스트림으로 변환하는 보조 스트림 중 하나입니다. 이 클래스는 특정 문자 집합의 인코딩을 사용하여 문자를 바이트로 변환합니다. 주로 바이트 기반 스트림에 연결되어 문자 데이터를 쓸 때 사용됩니다. OutputStreamWriter는 Writer 클래스를 상속하고 있습니다.

OutputStreamWriter의 생성자 중에서 자주 사용되는 것은 다음과 같습니다.

 

1. OutputStreamWriter(OutputStream out) 생성자

주어진 바이트 출력 스트림 out을 기반으로 OutputStreamWriter를 생성합니다.

 

2. OutputStreamWriter(OutputStream out, Charset cs) 생성자

주어진 바이트 출력 스트림 out을 기반으로 하며, 주어진 문자 집합 cs를 사용하여 OutputStreamWriter를 생성합니다.

 

3. OutputStreamWriter(OutputStream out, CharsetEncoder enc) 생성자

주어진 바이트 출력 스트림 out을 기반으로 하며, 주어진 문자 집합 인코더 enc를 사용하여 OutputStreamWriter를 생성합니다. OutputStreamWriter의 주요 메서드와 사용 예제는 다음과 같습니다.

 

- void write(int c) 메서드 : 한 문자를 출력 스트림에 쓰기합니다.

- void write(char[] cbuf, int off, int len) 메서드 : 주어진 문자 배열의 지정된 범위의 문자를 출력 스트림에 쓰기합니다.

- void write(String str, int off, int len) 메서드 : 주어진 문자열의 지정된 범위의 문자를 출력 스트림에 쓰기합니다.

- void flush() 메서드 : 출력 스트림을 비우고 모든 출력된 데이터를 목적지로 보냅니다.

- void close() 메서드 : 출력 스트림을 닫습니다.

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

public class OutputStreamWriterExample {
    public static void main(String[] args) {
        try (FileOutputStream fos = new FileOutputStream("output.txt");
             OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8)) {
            // 문자를 출력 스트림에 쓰기
            osw.write("Hello, OutputStreamWriter!");

            // 문자 배열을 출력 스트림에 쓰기
            char[] charArray = {' ', 'W', 'o', 'r', 'l', 'd'};
            osw.write(charArray, 0, 6);

            // 문자열의 일부를 출력 스트림에 쓰기
            String str = " This is a test.";
            osw.write(str, 0, 5);

            // 출력 스트림 비우기
            osw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이 예제에서는 OutputStreamWriter를 사용하여 파일에 문자를 쓰고 있습니다. StandardCharsets.UTF_8를 사용하여 OutputStreamWriter를 생성했습니다. 마찬가지로 try-with-resources 구문을 사용하여 자동으로 리소스를 닫고 있습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 System.in  (0) 2023.11.26
자바 표준입출력  (0) 2023.11.26
자바 InputStreamReader  (0) 2023.11.26
자바 BufferedWriter  (0) 2023.11.26
자바 BufferedReader  (0) 2023.11.26