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

来源:3-1 RandomAccessFile基本操作

昵称是JaVa

2017-03-07 10:17

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

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

写回答 关注

1回答

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

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

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133769 学习 · 1030 问题

查看课程

相似问题