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; }
ki4网,大批的免费Java入门教程,迎接在线进修!
以上就是java写入文件是乱码的细致内容,更多请关注ki4网别的相干文章!