3
다음 코드가 있는데 어떤 이유로 파일 끝에 도달하지 않으므로 while 루프가 끝나지 않습니다.파일 판독기가 제대로 작동하지 않습니까?
public class Temp {
FileReader fr;
Temp() {
try {
fr = new FileReader("File path");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Temp ob = new Temp();
try {
char c;
while ((c = (char) ob.fr.read()) != -1) {
System.out.println(c);
}
ob.fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
아무도 내가이 문제를 해결할 수 있습니까? 미리 감사드립니다.
이 그렇게 나쁜 곳이이에서 얻었 는가? 당신이하려고하는 것은 무엇이며, 누군가는 당신을 더 나은 참조로 안내 할 것입니다, 왜냐하면 이것은 사용되어서는 안되는 자바이기 때문입니다. – matt
@matt 방금 파일 판독기 주제를 다시 방문했습니다. 그리고 나는 기본을 잊어 버렸다. ;) –
따라서 FileReader는 문자 인코딩이 부족하여 사용하지 않는 것이 좋습니다. 더 나은 옵션은 [Files.newBufferedReader] (https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#newBufferedReader-java.nio.file)를 사용하는 것입니다. Path-java.nio.charset.Charset-) 다음으로 사용해야 할 것은 [ARM] (https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html)입니다. 너무 부정적이지는 않겠지 만, 방금이 프로그램을 시작 했으므로 현재 올바른 기술을 사용하는 것이 훨씬 낫습니다. 건배. – matt