판봉 개발 일기

문자 변환 보조 스트림 본문

자바 복습

문자 변환 보조 스트림

판봉 2021. 7. 15. 17:32
728x90

소스 스트림이 바이트 기반 스트림(ex-InputStream, OutputStream, FileInputStream, FileOutputStream)이면서

입출력 데이터가 만약에 문자라면 앞장에서 살펴본 것과 같이 Reader와 Writer로 변환해서 사용할 수 있습니다.

 

왜냐하면 문자 입출력은 Reader와 Writer가 편리하기 때문입니다.


OutputStreamWriter

OutputStreamWriter은 바이트 기반 출력 스트림에 연결되고 문자 출력 스트림인 Writer로 변환보조하는 스트림입니다.

Writer writer = new OutputStreamWriter(바이트 기반 출력 스트림);

파일 출력을 위한 바이트 기반 스트림은 다음처럼 바꿀수있습니다.

FileOutputStream fos = new FileOutputStream("C:/Temp/test1.txt");
Writer writer = new OutputStreamWriter(fos);

InputStreamReader

InputStreamReader 는 바이트 기반 입력 스트림에 연결되며, 문자 입력 스트림은 Reader로 변환 보조 합니다.

까먹었을까봐 쓰지만 Writer은 출력스트림이고 Reader는 입력 스트림입니다.

Reader reader = new InputStreamReader(바이트 기반 입력 스트림);

 

바이트 기반 스트림을 문자 입력스트림타입인 Reader로 변활 할 수도 있습니다.

FileInputStream fis = new FileInputStream("C:/Temp/teset1.txt");
Reader reader = new InputStreamReader(fis);

다음은 위와 관련된 코드입니다. 한번 살펴보세요

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;

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 {
    	FileOutputStream fos = new FileOutputStream("C:/Temp/test1.txt");
        Writer writer = new OutputStreamWriter(fos);
        writer.write(str);
        writer.close();
    }// 보조 스트림 연결되어있는것입니다.
    
    public static String read() throws Exception {
    	FileInputStream fis = new FileInputStream("C:/Temp/test1.txt"):
        Reader reader = new InputStreamReader(fis); // 보조스트림연결!
        
        char[] buffer = new char[100] // 길이가 100인 배열 생성!
        int readCharNum = reader.read(buffer); //배열의 길이만큼 읽기
        reader.close();
        String data = new String(buffer, 0, reradCharNum); //char배열에서 읽은 것만큼 문자열변환
        return data;// 리턴타입이 String이니까
    }
}

'자바 복습' 카테고리의 다른 글

기본 타입 입출력 보조 스트림  (0) 2021.07.15
성능 향상 보조 스트림  (0) 2021.07.15
보조 스트림  (0) 2021.07.15
문자 입력 스트림 Reader  (0) 2021.07.15
문자 출력 스트림 : Writer  (0) 2021.07.14