큰 텍스트 파일을 한 줄씩 처리하려면 다음 코드를 사용하고 있습니다. 문제는 영어가 아닌 크로아티아어를 정확하게 사용하고 있다는 것입니다. 많은 문자가 출력 파일에 appear로 표시됩니다. 이 문제를 어떻게 해결할 수 있습니까?새 파일에 저장할 때 이상한 문자를 출력하는 BufferedWriter
파일이 ANSI 형식이지만이 형식이 InputStreamReader와 호환 가능한 인코딩 형식으로 보이지 않습니다. 원본 파일을 어떤 인코딩 유형으로 저장해야합니까?
try (BufferedWriter bw = new BufferedWriter(new FileWriter(FILENAME))) {
String line;
try {
try (
InputStream fis = new FileInputStream("C:\\Users\\marti\\Documents\\Software Projects\\Java Projects\\TwitterAutoBot\\src\\main\\resources\\EH.Txt"); InputStreamReader isr = new InputStreamReader(fis, Charset.forName("UTF-8")); BufferedReader br = new BufferedReader(isr);
) {
while ((line = br.readLine()) != null) {
// Deal with the line
String content = line.substring(line.lastIndexOf(" ") + 1);
System.out.println(content);
bw.write("\n\n" + content);
}
}
} catch (IOException e) {
e.printStackTrace();
}
// bw.close();
} catch (IOException e) {
e.printStackTrace();
}
입력 파일은 어떤 인코딩을 사용합니까? –
@GregKopff ANSI입니다. – santafebound
@MartinErlic 만약 'ANSI'라면, * 왜 *'UTF-8' **을 코드에 지정 했습니까? --- [ANSI] (https://en.wikipedia.org/wiki/ANSI_character_set) 인 경우 [확장 ANSI] (https://en.wikipedia.org/wiki/Extended_ASCII)의 특징은 다음과 같습니다. 그것? – Andreas