为了账号安全,请及时绑定邮箱和手机立即绑定

为啥我新建一个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下载
官方微信