>  기사  >  Java  >  Java에서 텍스트 파일을 읽을 때 잘못된 문자가 나타납니다.

Java에서 텍스트 파일을 읽을 때 잘못된 문자가 나타납니다.

王林
王林원래의
2019-11-28 11:18:591848검색

Java에서 텍스트 파일을 읽을 때 잘못된 문자가 나타납니다.

최근에 Java에서 텍스트 파일(예: csv 파일, txt 파일 등)을 읽을 때 중국어 문자가 나타나면 왜곡되는 문제가 발생했습니다. 읽기 코드는 다음과 같습니다.

List<String> lines=new ArrayList<String>();  
BufferedReader br = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = br.readLine()) != null) { 
      lines.add(line);
}
br.close();

추천 관련 동영상 튜토리얼: java 온라인 학습

원리:

Java의 I/O 클래스 처리는 그림과 같습니다.

Java에서 텍스트 파일을 읽을 때 잘못된 문자가 나타납니다.

Reader 클래스는 Java의 I/O 중간 읽기 문자의 상위 클래스와 Charset 인코딩 형식은 디코딩 프로세스 중에 사용자가 지정해야 합니다. InputStream 类是读字节的父类,InputStreamReader 类就是关联字节到字符的桥梁,它负责在 I/O 过程中处理读取字节到字符的转换,而具体字节到字符的解码实现它由 StreamDecoder 去实现,在 StreamDecoder

Charset을 지정하지 않으면 로컬 환경의 기본 문자 집합이 사용된다는 점에 유의할 필요가 있습니다. 예를 들어 중국어 환경에서는 GBK 인코딩이 사용됩니다.

요약: Java가 데이터 스트림을 읽을 때 데이터 스트림의 인코딩 방법을 지정해야 합니다. 그렇지 않으면 로컬 환경의 기본 문자 집합이 사용됩니다.

위 분석 후 수정된 코드는 다음과 같습니다.

List<String> lines=new ArrayList<String>();
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
      lines.add(line);
}
br.close();

더 많은 관련 튜토리얼을 알고 싶다면 다음을 방문하세요.

Getting start with java

위 내용은 Java에서 텍스트 파일을 읽을 때 잘못된 문자가 나타납니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.