Kcits :
나는 빈 txt 파일을 읽을 자바의 BufferedReader를 사용했습니다.
여기 내 코드는 :
File recentFile = new File(path);
try {
BufferedReader reader = new BufferedReader(newInputStreamReader(newFileInputStream(recentFile), "UTF-8"));
String temp = reader.readLine();
reader.close();
if (temp == null) {System.out.println("your file is empty");}
else {System.out.println(temp);}
} catch (IOException ex) {}
TXT 파일에는 완전히 비어 있지만 프로그램, 밖으로 명령 프롬프트 인쇄를 실행할 때 "?" 대신 "당신의 파일이 비어 있습니다."
나는 "유니 코드"에 "UTF-8"로 변경하고, 유니 코드 형식으로 인코딩 내 txt 파일을 변경할 때, 나는 프롬프트에서 "파일이 비어"얻는다.
내가 UTF-8을 사용할 때 이유는이 결과를받을 수 있나요?
BTW, 이것은 중복 된 경우 내가 구글에 여러 번 검색을 시도했지만 나에게 도움이 아무것도 찾을 수 없습니다 알려 주시기 바랍니다.
rzwitserloot :
이 파일은 완전히 비어 있지; 그 유일한 설명이다. 대부분의 경우 시작에서 바이트 순서 표시가있다. 이것은 (당신이 메모장에서 파일을 열면, 아마 겉으로는 완전히 비어로 표시됩니다) 캐릭터처럼 보이지 않지만, 계산을 수행합니다.
나는 그것이 널 (null)을 반환 시작하기 전에 BR 아마 1 빈 문자열 처음으로 돌아갑니다 믿고 참고; 그러나,이 (가 있다면, 당신은 당신의 프로그램 프린트를 보았다하지 않을 여기서 무슨 일이 있었는지되지 않습니다 ?
).
당신은 헥스 편집기가 실제 바이트를 확인할 수 있습니다. 또한, 자바 코드의이 조각은 당신을 말할 것이다 :
try (var in = new FileInputStream("/path/to/the/file")) {
for (int c = in.read(); c != -1; c = in.read()) {
System.out.print("%02X", c & 0xFF);
}
}
System.out.println();