问答详情
源自:3-1 RandomAccessFile基本操作

raf.write("A");为什么说只会写A的“后”八位?

1、raf.dat是ansi编码,一个字母只占一个字节,也就是说只有八位?那么,何来前后之说?

2、老师说如果‘A’字符前八位都为0,系统只写了它的后八位,就可以写出这个字符。那么假如B后八位与A的后八位一样,但是前八位不为0,那么当系统写完B后八位时,岂不是会直接把B后八位错误解析成A。毕竟一次只读一个字节。

提问者:昵称是JaVa 2017-03-07 10:17

个回答

  • betME
    2017-03-07 11:12:03
    已采纳

    一个字符根据编码方式的不同所需的字节数也不同,gbk编码的一个字符需要2个字节,而write方法是写入一个字节,因为系统会将后八位写入。