다른 인코딩 형식의 텍스트 파일 읽기
public class ReadFile {
public static void main(String[] args) throws IOException {
File f1=new File("e:"+File.separator+"test1.txt");
File f2=new File("e:"+File.separator+"test2.txt");
String str1=FileUtils.readFileToString(f1);
String str2=FileUtils.readFileToString(f2);
System.out.println(str1);
System.out.println(str2);
}
}
출력 결과: test1 텍스트 내용: hello, 중국 test2 텍스트 내용: hello㎡й�
test2 텍스트가 한자와 잘 읽을 때 인코딩이 깨진 것을 볼 수 있습니다. 이것은 읽을 때 파일을 읽는 인코딩 형식을 설명하지 않았기 때문입니다. 코드가 실행될 때 기본적인 인코딩 형식으로 해석되기 때문에 인코딩이 깨졌습니다(주: 이것은 제 개인적인 이해입니다. 오류가 있으면 지적해 주십시오).코드 수정은 다음과 같습니다.
public class ReadFile {
public static void main(String[] args) throws IOException {
File f1=new File("e:"+File.separator+"test1.txt");
File f2=new File("e:"+File.separator+"test2.txt");
String str1=FileUtils.readFileToString(f1,"UTF-8"); // utf-8
String str2=FileUtils.readFileToString(f2,"gbk"); // gbk
System.out.println("test1 :"+str1);
System.out.println("test2 :"+str2);
}
}
출력 결과:test1 텍스트 내용:hello, 중국test2 텍스트 내용:hello, 중국
이 때 텍스트 파일의 내용을 정확하게 읽습니다.때때로 우리는 인코딩 형식이 정확한 상황에서도 일부 인코딩이 발생할 수 있다. 이럴 때 텍스트 파일이 저장될 때 기본적으로 BOM이 추가될 수 있다. 윈도에서 자체로 가지고 있는 텍스트 인코더를 사용하지 말고 다른 텍스트 인코더를 선택해서 인코딩 형식에 BOM이 자동으로 포함되지 않도록 하는 것이 좋다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 폴더 아래의 모든 파일 실례 코드 읽기java 폴더 아래의 모든 파일 읽기 자바 기초 지식을 배우고 파일을 읽으며 어떤 폴더를 읽으려면 모든 파일을 읽어야 합니다. 어떻게 실현할 수 있습니까? 실례 코드를 보십시오. 인스턴스 코드:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.