나는 올바른 접근 방식은FileReader 만 사용하여 파일을 읽을 수 있습니까?
BufferedReader br = new BufferedReader(FileReader(file));
알고하지만 난 자바에서 확인을 FileReader 클래스의 메서드를 API와 그것을 읽은 문자를 돌려 read()
방법이있다. 그러나 그것은 나를 위해 일하지 않습니다. 이 텍스트 줄이 들어있는 파일을 읽는 중입니다. "파일을 읽는 중입니다."라고 화면에 인쇄하고 있지만 프로그램을 실행하면 각 문자에 해당하는 ASCII 코드가 인쇄됩니다.
String lectura = "";
try{
lectura = String.valueOf(fr.read());
} catch(IOException ioex){
ioex.printStackTrace();
}
while((Integer.parseInt(lectura)) != -1){
System.out.print(lectura);
try{
lectura = String.valueOf(fr.read());
} catch(IOException ioex){
ioex.printStackTrace();
}
}
거의 - int는 ASCII 값이 아니며 FileReader는 플랫폼의 기본 인코딩을 사용합니다. –
차이점은 무엇입니까? – CodeBlue
글쎄, 파일이 정상적인 7 비트 ASCII 문자로 쓰여진다면 아무런 차이가 없을 것입니다. 그러나 텍스트 편집기가 latin1을 사용하여 작성한 경우 fr.read()는 유효한 ASCII 코드가 아닌 int를 반환합니다. ('Charset.defaultCharset()'이 UTF-8과 같은 것일 경우 말도 안되는 것을 되돌릴 수 있습니다.) –