java写入文件是乱码

互联网 19-11-20

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写入文件是乱码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 乱码
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java面试——数据结构

相关资讯