您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。