Maison  >  Article  >  Java  >  Java écrit des fichiers tronqués

Java écrit des fichiers tronqués

angryTom
angryTomoriginal
2019-11-20 17:03:042914parcourir

Java écrit des fichiers tronqués

Les fichiers d'écriture Java sont tronqués

Lorsque nous lisons et écrivons des flux de fichiers, nous rencontrons souvent Bien sûr, le La cause des codes tronqués ne peut pas être la même. Ici, nous introduisons principalement le problème des codes tronqués causés par le format d'encodage du fichier. Tout d’abord, clarifions les concepts et les différences entre les fichiers texte et les fichiers binaires.

Les fichiers texte sont des fichiers basés sur le codage de caractères. Les codages courants incluent le codage ASCII, le codage UNICODE, le codage ANSI, etc. Les fichiers binaires sont des fichiers basés sur un codage de valeurs. Vous pouvez spécifier ce que signifie une certaine valeur en fonction de l'application spécifique (un tel processus peut être considéré comme un codage personnalisé.)

Par conséquent, on peut voir que les fichiers texte sont fondamentalement, il s'agit d'un codage de longueur fixe (il existe également des codages de longueur non fixe tels que UTF-8). Le fichier binaire peut être considéré comme un codage de longueur variable, car il s'agit d'un codage de valeur. Le nombre de bits représentant une valeur dépend entièrement de vous.

Les opérations spécifiques sont les suivantes :

Écrire le fichier dans le format spécifié par le fichier

/**
   * 按照指定的路径和编码格式保存文件内容,这个方法因为用到了字符串作为载体,为了正确写入文件(不乱码),只能写入文本内容,安全方法
   * 
   * @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 Site chinois, un grand nombre de Introduction Java gratuites tutoriels, bienvenue à l'étude en ligne !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn