>  기사  >  Java  >  Java는 잘못된 파일을 작성합니다.

Java는 잘못된 파일을 작성합니다.

angryTom
angryTom원래의
2019-11-20 17:03:042960검색

Java는 잘못된 파일을 작성합니다.

Java로 작성된 파일이 깨졌습니다

파일 스트림을 읽고 쓸 때 문자가 깨지는 경우가 종종 있습니다. 물론 여기서는 주로 파일 인코딩을 소개합니다. 포맷으로 인해 글자가 깨져 보이는 문제. 먼저 텍스트 파일과 바이너리 파일의 개념과 차이점을 명확히 하겠습니다.

텍스트 파일은 문자 인코딩을 기반으로 하는 파일입니다. 일반적인 인코딩에는 ASCII 인코딩, UNICODE 인코딩, ANSI 인코딩 등이 포함됩니다. 바이너리 파일은 값 인코딩을 기반으로 하는 파일입니다. 특정 응용 프로그램에 따라 특정 값이 무엇을 의미하는지 지정할 수 있습니다. (이러한 프로세스는 사용자 정의 인코딩으로 간주될 수 있습니다.)

따라서 텍스트 파일은 기본적으로 고정 길이 인코딩임을 알 수 있습니다. (UTF-8과 같은 고정 길이가 아닌 인코딩도 있습니다). 바이너리 파일은 값 인코딩이기 때문에 가변 길이 인코딩으로 간주될 수 있습니다. 값을 나타내는 비트 수는 전적으로 사용자에게 달려 있습니다.

구체적인 작업은 다음과 같습니다.

파일

/**
   * 按照指定的路径和编码格式保存文件内容,这个方法因为用到了字符串作为载体,为了正确写入文件(不乱码),只能写入文本内容,安全方法
   * 
   * @param data
   *     将要写入到文件中的字节数据
   * @param path
   *     文件路径,包含文件名
   * @return boolean 
   *      当写入完毕时返回true;
   */
  public static boolean writeFile(byte data[], String path , String code){
    boolean flag = true;
    OutputStreamWriter osw = null;
    try{
      File file = new File(path);
      if(!file.exists()){
        file = new File(file.getParent());
        if(!file.exists()){
          file.mkdirs();
        }
      }
      if("asci".equals(code)){
        code = "GBK";
      }
      osw = new OutputStreamWriter(new FileOutputStream(path),code);
      osw.write(new String(data,code));
      osw.flush();
    }catch(Exception e){
      e.printStackTrace();
      log.info("toFile IO Exception:"+e.getMessage());
      flag = false;
    }finally{
      try{
        if(osw != null){
          osw.close();
        }
      }catch(IOException e){
        e.printStackTrace();
        log.info("toFile IO Exception:"+e.getMessage());
        flag = false;
      }
    }
    return flag;
  }

php에 지정된 형식으로 파일을 작성하세요. 수많은 무료 Java 입문 튜토리얼이 있으며 온라인 학습을 환영합니다!

위 내용은 Java는 잘못된 파일을 작성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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