亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥我新建一個txt文件在里面寫上些字后用這個方法復制出來的文件是亂碼呢?

為啥我新建一個txt文件在里面寫上些字后用這個方法復制出來的文件是亂碼呢?

正在回答

1 回答

你新建的文本文件window默認是ANSI編碼,而ANSI編碼就代表GBK編碼,java是雙字節編碼,即utf-16be,先檢查你建的項目是不是GBK或utf-16be編碼,再檢查寫入文件時的字節或字符流是否指定為該編碼方法!可參照以下代碼:

public class BufferReaderWriter {

? ? public static void main(String[] args) throws IOException {

// 讀操作

? ? ? BufferedReader br=new BufferedReader(

? ? ? ? new InputStreamReader(

? ? ? ? ? new FileInputStream("C:\\Program Files\\Java\\workspace\\06IO流 ? ? \\src\\sl0007_bufferreaderwriter\\imooc-gbk.txt"),"gbk"));

//寫操作

? ? ?BufferedWriter bw=new BufferedWriter(

? ? ? ?new OutputStreamWriter(

? ? ? ? ?new FileOutputStream("C:\\Program Files\\Java\\workspace\\06IO流\\src\\sl0007_bufferreaderwriter\\imooc-gbk2.txt",true),"utf-16be"));

? ??String line2;

? ? while((line2=br.readLine())!=null){

? ? ? ? System.out.println(line2);

? ? ? ? bw.write(line2);

? ? ? ? //單獨寫出換行操作

? ? ? ?bw.newLine();

? ? ? ?bw.flush();

? ? }

? br.close();

? pw.close();

? }

}


2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為啥我新建一個txt文件在里面寫上些字后用這個方法復制出來的文件是亂碼呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號