Java는 텍스트 파일(예: csv 파일, txt 파일 등)을 읽는데, 중국어를 접하면 깨져서 나옵니다. (추천: java 비디오 튜토리얼)
읽는 코드는 다음과 같습니다.
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에서 문자를 읽는 상위 클래스이고, InputStream 클래스는 바이트를 읽는 상위 클래스입니다. 특정 바이트-문자 디코딩은 StreamDecoder의 디코딩 프로세스 동안 사용자가 Charset 인코딩 형식을 지정해야 합니다. 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();
더 많은 Java 지식을 알고 싶다면 java 기본 튜토리얼 칼럼을 주목해주세요.
위 내용은 Java의 잘못된 파일 읽기 문제에 대한 자세한 그래픽 및 텍스트 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!