关于java字节输出流和输入流的问题?

用一个输出流,在文件里写了一个字符串“你好”,再用输入流读取,为什么读取的内容和输入的字节不一样?详细代码如下:
FileOutputStream fos = new FileOutputStream("E:\\IDEA\\20191218.txt");
byte[] bytes="你好".getBytes();
fos.write(bytes);
System.out.println(Arrays.toString(bytes));
FileInputStream fis = new FileInputStream("E:\\IDEA\\20191218.txt"); int len=0;
while((len=fis.read())!=-1){
System.out.println(len);
}
运行结果:

“你好”的UTF-8编码是6字节,正好是显示的228 189 160 229 165 189,没任何问题,因为你显示的就是6个字节编码。
如果你要显示成字符,则应该按字符串的方式读入到String中,再显示。或者你把这个读入的二进制数放入byte,再转到String,再显示即是你要的“你好”二个字。追答

追问吧,看不见评论

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-19
关于一个文件自己的输出问题,他的叔叔和流入也是非常相同的。
相似回答