A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


代码如图,最基本的字节输入输出,aaa.txt中是   你好吗?   ,我不理解的是字节输入输出都是一个字节读取,一个字节写入,而汉字都是两个字节的,为什么写入到bbb.txt中还是汉字而不是乱码?我知道我很水,诚心提问

7 个回复

倒序浏览
会自动组合拼接吧
回复 使用道具 举报
因为你相当于把源文件复制了一份啊
回复 使用道具 举报
HARRY_yFd0S 发表于 2016-9-8 19:50
因为你相当于把源文件复制了一份啊

复制也是一个字符一个字符的写入,汉字都是两个字符的,分开写入就不是那个字了
回复 使用道具 举报
因为汉字是两个字节的,当它读到第一个字节的时候(一个汉字的半个字节为负),会等待下一个字节的读取,再去编码表里找相对应的汉字
回复 使用道具 举报
编译器编码和txt编码一样的
回复 使用道具 举报
kangnam 发表于 2016-9-8 23:51
因为汉字是两个字节的,当它读到第一个字节的时候(一个汉字的半个字节为负),会等待下一个字节的读取,再 ...

这个我也想到过,但是定义小数组的时候比如byte[] arr = new byte[3],三个三个取,它就是乱码,为什么这个就不等下一个了
回复 使用道具 举报
江楠大盗 发表于 2016-9-9 08:44
这个我也想到过,但是定义小数组的时候比如byte[] arr = new byte[3],三个三个取,它就是乱码,为什么这 ...

这是你定义每次读这么多,没标点符号这个你定义为偶数就可以了。字节流读汉字是不方便,你用字符流就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马