wx346 2023-01-06 10:00 采纳率: 100%
浏览 62
已结题

关于#java#的问题:java编码

字节输出流,为什么接着写入字节数组会乱码??

//文本文档和idea都用utf-8编码
File file = new File("test.txt");
FileOutputStream fos = new FileOutputStream(file);
//单独的运行结果:您好
fos.write("您好".getBytes());
//继续写入byte数组,运行结果:鎮ㄥソ緽CDE
byte[]  b = {-65,66,67,68,69};
fos.write(b);
fos.close();

}

  • 写回答

2条回答 默认 最新

  • 小小野猪 2023-01-06 10:22
    关注

    会影响到“您好”的写入效果:这句话有点歧义。 从代码的角度看,后写入的数据并不会影响“您好”这两个字,只会在其后拼接后写入的数据。 验证结果如:“您好¿BC” 。

    后写入的数据相当于append,字节写入本质是通过将值转换成ASCII吗,然后写的本质是二进制,你再看到的“您好”这两个字也是工具帮你转换过了。

    可以看下你程序的默认编码是什么,如您好的utf-8编码是:您好
    这里有全量的ASCII编码:https://blog.csdn.net/gongjin28_csdn/article/details/127959609

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月12日
  • 已采纳回答 1月6日
  • 修改了问题 1月6日
  • 创建了问题 1月6日