본문 바로가기

데이터 입출력

문자 변환 스트림

InputStream을 Reader로 변환

  • InputStream을 Reader로 변환하려면 InputStreamReader 보조 스트림을 연결


    출처, 이것이 자바다



    출처, 이것이 자바다


OutputStream을 Writer로 변환

  • OutputStream을 Writer로 변환하려면 OutputStreamWriter 보조 스트림을 연결


    출처, 이것이 자바다



    출처, 이것이 자바다


package ch18.sec06;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;

/*
 바이트스트림방식을 문자스트림방식으로 변환하여 작업하는 예제.

 - 메인스트림(1차스트림)과 보조스트림(2차스트림) 

 보조스트림 : 메인스트림에 연결하여, 작업하는 특징. 단독으로 작업할수는 없다.
  - 문자변환 스트림 : 바이트스트림을 문자변환스트림으로 변환하는 기능
         출력스트림 : OutputStreamWriter
         입력스트림 : InputStreamReader
 */

public class CharacterConvertStreamExample {

    public static void main(String[] args) throws Exception {
        write("문자 변환 스트림을 사용합니다.");
        String data = read();
        System.out.println(data);
    }

    public static void write(String str) throws Exception {
        OutputStream os = new FileOutputStream("C:/dev/temp/test.txt"); //바이트 출력스트림.
        Writer writer = new OutputStreamWriter(os, "UTF-8"); //바이트스트림 -> OutputStreamWriter -> 문자스트림
        writer.write(str);
        writer.flush();
        writer.close();
    }

    public static String read() throws Exception {
        InputStream is = new FileInputStream("C:/dev/temp/test.txt"); //바이트 입력스트림
        Reader reader = new InputStreamReader(is, "UTF-8"); //바이트스트림 -> InputStreamReader -> 문자스트림
        char[] data = new char[100];
        int num = reader.read(data); //읽어온 문자개수
        reader.close();
        String str = new String(data, 0, num);
        return str;
    }
}

'데이터 입출력' 카테고리의 다른 글

기본 타입 스트림  (0) 2023.02.08
성능 향상 스트림  (0) 2023.02.08
보조 스트림  (0) 2023.02.08
문자 입출력 스트림  (0) 2023.02.08
바이트 입력 스트림  (0) 2023.02.08