字节输出流,为什么接着写入字节数组会乱码??
//文本文档和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();
}
会影响到“您好”的写入效果:这句话有点歧义。 从代码的角度看,后写入的数据并不会影响“您好”这两个字,只会在其后拼接后写入的数据。 验证结果如:“您好¿BC” 。
后写入的数据相当于append,字节写入本质是通过将值转换成ASCII吗,然后写的本质是二进制,你再看到的“您好”这两个字也是工具帮你转换过了。
可以看下你程序的默认编码是什么,如您好的utf-8编码是:您好
这里有全量的ASCII编码:https://blog.csdn.net/gongjin28_csdn/article/details/127959609
-65会影响 您好的写入 这句话是什么意思,没有影响啊。其次在字节表示中,一个汉字就是对应2个字节,这是内部字节表示规定的。。望采纳 感谢!!!