老坛酸菜吃鸭子 2022-04-02 13:04 采纳率: 83.3%
浏览 85
已结题

【java】使用字符流复制文件 乱码

问题相关代码,请勿粘贴截图

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.CharBuffer;

public class Ooutputstreamwrite {

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

        OutputStreamWriter o= new OutputStreamWriter(new FileOutputStream("D:\\FILE\\a.txt"),"GBK");
        /* 构造方法
         * OutputStreamWriter(OutputStream out)
         * OutputStreamWriter(OutputStream out,String charsetName) */
        InputStreamReader i= new InputStreamReader(new FileInputStream("D:\\FILE\\java.txt"),"GBK");

        char[]  b=new char[100];
        while(i.read(b)!=-1) {
            o.write(b);
        }
        o.close();
        i.close();

    }

}

运行结果及报错内容

a.txt文件复制内容乱码

我的解答思路和尝试过的方法

加上了GBK编码为什么还是乱码,new String()方法里面要求的是 byte[]类型,强制转换也不行,字符流用来操作中文的便利性体现在哪里,感觉还是很麻烦

我想要达到的结果

成功复制中文

  • 写回答

1条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2022-04-02 13:10
    关注

    要保证 java.txt 文件使用 GBK 编码存储才能用 GBK 编码读取,否则就会乱码,如果你不确定编码类型的话可以改成 UTF-8 试试看,这个编码用的比较多。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 4月2日

悬赏问题

  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能