JAVA 질문있습니다.
조회수 2840회
package Ex;
import java.io.*;
public class fre {
public static void main(String[] args) throws IOException {
FileInputStream fi = null;
InputStreamReader in = null;
// fi = new FileInputStream("fileEx.txt"); // fileEx.txt ANSI로 저장
// in = new InputStreamReader(fi, "MS949");
fi = new FileInputStream("fileEx1.txt");// fileEx1.txt UTF-8로 저장
in = new InputStreamReader(fi, "UTF-8");
int ch;
while((ch = fi.read()) !=-1 ){
System.out.print((char)ch);
}
fi.close();
}
}
파일입출력을 하고 있습니다. 파일에 입력된 텍스트를 콘솔창에 출력하고 싶었는데 자꾸 외계어만 뜨네요.
fileEx.txt (ANSI로 저장)
파일 리더 파일 라이터
fileReader fileWriter
Java Test
fileEx.txt 는 위와 같이 저장하고 콘솔창에 출력하니
Æ??? ¸®´? Æ??? ¶?????
fileReader fileWriter
Java Test
위와 같이 출력이 되고요. 제가 인코딩체계에 대해 잘못알고 있는 것 같아서 그나마 쉬운? uft-8형식으로 해봤습니다.
fileEx1.txt (UTF-8로 저장)
자바 연습 "utf-8"형식
fileEx1.txt 는 위와 같이 저장하고 콘솔창에 출력하니
??¿????°? ??°??? "utf-8"??????
라 뜨네요. 저는 틀린 게 없다고 보여지는데 왜 한글출력이 안되는지 모르겠습니다. ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
BufferedReader로 감싸서 사용해보세요.
public static void main(String[] args) throws IOException { FileInputStream fi = null; InputStreamReader in = null; fi = new FileInputStream("fileEx1.txt");// fileEx1.txt UTF-8로 저장 in = new InputStreamReader(fi, "UTF-8"); BufferedReader br = new BufferedReader(in); int ch; while ((ch = br.read()) != -1) { System.out.print((char) ch); } fi.close(); }
-
(•́ ✖ •̀)
알 수 없는 사용자
- Buffer로 묶어도 여전히 같은 결과가 나옵니다. ㅠㅠ 알 수 없는 사용자 2016.5.10 16:39
- 댓글이 달렸는지 이제 봤네요 ㅠ. 위 코드 복붙으로 해도 그러나요? 알 수 없는 사용자 2016.5.10 20:30
-
-
아래처럼
file encoding
을 지정해서 실행해 보세요.import java.io.*; public class Test { public static void main(String[] args) throws IOException { FileInputStream fi = null; InputStreamReader in = null; fi = new FileInputStream("fileEx1.txt");// fileEx1.txt UTF-8로 저장 in = new InputStreamReader(fi, "UTF-8"); BufferedReader br = new BufferedReader(in); int ch; while ((ch = br.read()) != -1) { System.out.print((char)ch); } fi.close(); } }
rm *.class ; javac Test.java ; java -cp . -Dfile.encoding=UTF8 Test
-
(•́ ✖ •̀)
알 수 없는 사용자 -
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
-
댓글 입력