최근에 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 클래스 처리는 그림과 같습니다.
Reader 클래스는 Java의 I/O 중간 읽기 문자의 상위 클래스와 Charset 인코딩 형식은 디코딩 프로세스 중에 사용자가 지정해야 합니다. InputStream
类是读字节的父类,InputStreamReader
类就是关联字节到字符的桥梁,它负责在 I/O 过程中处理读取字节到字符的转换,而具体字节到字符的解码实现它由 StreamDecoder
去实现,在 StreamDecoder
요약: 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();
위 내용은 Java에서 텍스트 파일을 읽을 때 잘못된 문자가 나타납니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!