데이터 입출력
문자 변환 스트림
한모로그
2023. 2. 8. 14:20
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;
}
}