T09_FileEncodingTest
public class T09_FileEncodingTest {
public static void main(String[] args) {
//파일 인코딩을 이용하여 읽어오기
FileInputStream fis = null; //바이트기반스트림
InputStreamReader isr = null;//문자기반스트림
try {
fis = new FileInputStream("d:/D_Other/test_utf8.txt");
//fis = new FileInputStream("d:/D_Other/test_ansi.txt");
// isr = new InputStreamReader(fis, "cp949"); //cp949방식으로 읽어보기
isr = new InputStreamReader(fis, "UTF-8");
// isr = new InputStreamReader(fis, "MS949");
// isr = new InputStreamReader(fis, "EUC-KR");
int c;
while((c=isr.read())!=-1) {
System.out.print((char)c);
}
System.out.println();
System.out.println("출력 끝...");
isr.close();//보조스트림 닫으면 기반스트림 닫고 보조스트림 닫는다.
//fis.close(); 굳이 안해줘도 된다.
}catch(IOException ex) {
ex.printStackTrace();
}
}
}
ansi방식
: cp949, MS949, EUC-KR 방식 다 읽혀짐
UTF-8 방식
: UTF-8 방식으로만 읽힘
T10_FileEncodingTest
public class T10_FileEncodingTest {
public static void main(String[] args) throws IOException {
//키보드로 입력한 내용을 파일로 저장하는데
//out_utf8.txt 파일은 'utf-8'인코딩 방식으로,
//out_ansi.txt 파일은 'ms949'인코딩 방식으로 저장한다.
InputStreamReader isr = new InputStreamReader(System.in); //문자기반
//파일 출력용
FileOutputStream fos1 = new FileOutputStream("d:/D_Other/out_utf8.txt");//바이트기반
FileOutputStream fos2 = new FileOutputStream("d:/D_Other/out_ansi.txt");
OutputStreamWriter osw1 = new OutputStreamWriter(fos1, "utf-8"); //문자기반
OutputStreamWriter osw2 = new OutputStreamWriter(fos2, "ms949");
int c;
System.out.println("아무거나 입력하라");
while((c=isr.read())!=-1) {
osw1.write(c);
osw2.write(c);
}
System.out.println("작업 완료...");
isr.close();
osw1.close();
osw2.close();
}
}