Java, 로컬 파일 읽기 및 쓰기 문제 해결

1804 단어 Java중국어 부호
Java, 로컬 파일 읽기 및 쓰기 문제 해결
선언:
자바 프로그램으로 중국어를 포함하는 txt 파일을 읽거나 쓸 때 자주 읽거나 쓰는 내용이 혼란스러워집니다.원인은 사실 매우 간단하다. 바로 시스템의 인코딩과 프로그램의 인코딩이 서로 다른 인코딩 형식을 채택했기 때문이다.일반적으로 자신이 수정하지 않으면 윈도우즈 자체가 사용하는 인코딩 형식은 gbk(gbk와 gb2312는 기본적으로 같은 인코딩 방식)이고, IDE에서 Encode가 수정하지 않으면 기본값은utf-8의 인코딩입니다. 이것이 바로 인코딩이 발생하는 이유입니다.OS에서 수동으로 만들고 쓴 txt 파일 (gbk) 을 프로그램으로 직접 읽으면 (utf-8) 코드가 혼란스러워집니다.가능한 중국어 디코딩 문제를 피하기 위해서는 파일을 쓰고 읽을 때 인코딩 형식을 명시적으로 지정하는 것이 좋습니다.
행별로 로컬 파일 읽기:

public static String readFile(String fileName) {
    String fileContent = "";
    try {
      File f = new File(fileName);
      if (f.isFile() && f.exists()) {
        InputStreamReader read = new InputStreamReader(
            new FileInputStream(f), "gbk");
        BufferedReader reader = new BufferedReader(read);
        String line;
        while ((line = reader.readLine()) != null) {
          fileContent += line+"
"; } read.close(); } } catch (Exception e) { e.printStackTrace(); } return fileContent; }
로컬 파일 쓰기:

public static void writeFile(String fileName, String fileContent) {
    try {
      File f = new File(fileName);
      if (!f.exists()) {
        f.createNewFile();
      }
      OutputStreamWriter write = new OutputStreamWriter(
          new FileOutputStream(f), "gbk");
      BufferedWriter writer = new BufferedWriter(write);
      writer.write(fileContent);
      writer.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기