在用Java程序進行讀寫含中文的txt文件時,經常會出現讀出或寫入的內容會出現亂碼。是因為系統的編碼和程序的編碼采用了不同的編碼格式。
成都創新互聯公司企業建站,十余年網站建設經驗,專注于網站建設技術,精于網頁設計,有多年建站和網站代運營經驗,設計師為客戶打造網絡企業風格,提供周到的建站售前咨詢和貼心的售后服務。對于成都網站設計、網站建設中不同領域進行深入了解和探索,創新互聯在網站建設中充分了解客戶行業的需求,以靈動的思維在網頁中充分展現,通過對客戶行業精準市場調研,為客戶提供的解決方案。
解決方法:
采用java.io.FileInputStream/java.io.InputStreamReader和java.io.FileOutputStream/java.io.OutputStreamWriter來解決這個問題。
實現代碼:
//默認情況下,win系統編碼是gbk/gbk2312,讀取和寫入時加入編碼字符集可以解決亂碼 public class ReadAndWrite { private static void test(){ File firstFile = new File("D://fileone.txt"); File secondFile=new File("D://filesecond.txt"); BufferedReader in = null; BufferedWriter out = null; try { //加入編碼字符集 in = new BufferedReader(new InputStreamReader(new FileInputStream(firstFile), "gbk")); //加入編碼字符集 out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(secondFile), "gbk")); String line = ""; while((line = in.readLine())!=null){ System.out.println(line); out.write(line+"\r\n"); } } catch (FileNotFoundException e) { System.out.println("file is not fond"); } catch (IOException e) { System.out.println("Read or write Exceptioned"); }finally{ if(null!=in){ try { in.close(); } catch (IOException e) { e.printStackTrace(); }} if(null!=out){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } }
以上就是java文件寫入亂碼怎么辦的詳細內容,更多請關注創新互聯其它相關文章!