您好,登录后才能下订单哦!
java写入文件为什么会乱码?
原因是写入时使用的字符bai编码和期望的du不一致导致的。java工作区统一编zhi码。统一为utf-8,这个就是输出流dao的编码问题吧?如果你在输出时指定好具体的编码,或者说指定跟原网页一直的编码。如果你期望写到文件中的汉字是 GBK编码,可以写文件时,将字符串准换成 GBK编码的byte[]。网页编码和输出流编码一致。
java写文件避免乱码代码如下:
* * @Title: writeFile * @Description: 写文件 * @param @param filePath 文件路径 * @param @param fileContent 文件内容 * @return void 返回类型 * @throws */ public static void writeFile(String filePath, String fileContent) { try { File f = new File(filePath); if (!f.exists()) { f.createNewFile(); } OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f), "UTF-8"); BufferedWriter writer = new BufferedWriter(write); writer.write(fileContent); writer.close(); } catch (Exception e) { System.out.println("写文件内容操作出错"); e.printStackTrace(); } }
主要实现代码:OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
OutputStreamWriter是从字符流到字节流的桥接:使用指定的字符集将写入其中的字符编码为字节。它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。
每次调用write()方法都会导致在给定字符上调用编码转换器。生成的字节在写入底层输出流之前在缓冲区中累积。可以指定此缓冲区的大小,但默认情况下,它足够大,可用于大多数用途。请注意,传递给write()方法的字符不会被缓冲。
OutputStreamWriter流中的构造方法可以指定字符集,或者不设置取默认值。
以上就是java写入文件乱码怎么解决的详细内容,更多请关注亿速云其它相关文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。