https://d2.naver.com/helloworld/76650
// 파일 인코딩을 이용하여 읽어오기
FileInputStream fis = null;
InputStreamReader isr = null;
try {
// FileInputStream객체를 생성한 후 이 객체를 매개변수로 받는
// InputStreamReader 객체를 생성한다.
// 바이트 입력 스트림에 연결되어 문자 입력 스트림인 Reader로 변환시킨다.
//fis = new FileInputStream("d:/D_Other/test_utf8.txt");
fis = new FileInputStream("d:/D_Other/test_ansi.txt");
isr = new InputStreamReader(fis, "cp949"); // EUC-KR, MS949 (=ANSI계열)
int c;
while((c=isr.read()) != -1) {
System.out.print((char) c);
}
System.out.println();
System.out.println("출력 끝...");
isr.close(); // 보조스트림만 닫아줘도 보조가 알아서 기반을 닫고 자기도 닫음
} catch (IOException e) {
e.printStackTrace();
}
// 키보드로 입력한 내용을 파일로 저장하는데
// 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("아무거나 입력하세요."); // ctrl+z 누르면 끝
while((c=isr.read()) != -1) {
osw1.write(c);
osw2.write(c);
}
System.out.println("작업 완료..."); // 내용은 같으나 인코딩 방식이 다르게 적용됨
isr.close();
osw1.close();
osw2.close();