老坛酸菜吃鸭子 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 微信小程序商城如何实现多商户收款 平台分润抽成
  • ¥15 HC32L176调试了一个通过TIMER5+DMA驱动WS2812B
  • ¥15 三菱FX系列PLC串口指令
  • ¥15 cocos的js代码调用wx.createUseInfoButton问题!
  • ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题
  • ¥35 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助