文件存储时每个字符是2个字节
要看文件时用什么编码保存的,gbk,utf-8英文是一个字节保存的,unicode都是两个字节。

解决方案 »

  1.   

    但是文件存储时每个字符是2个字节,如果是读英文字母,高8位肯定是全0,----
    错误!这个是需要根据文件格式决定的。如果文件格式是GBK(中文系统的默认格式)中文占用2个字符,英文只占用1个,如果是UTF-8,中文占用3个,英文占用1个,如果是Unicode则都占用2个你可以使用UltraEdit中的十六进制模式看看你的文件。
    所以根本不存在丢失的问题
      

  2.   

    2楼所言,理解。通过十六进制查看,确实一个英文是一个字节表示。但是我还使用FileReader字符流。它是一次读取一个字符(2个字节)。循环read后,读中文时,是读2个字节,读取中文正常。但是读取英文,如果再读2个字节肯定又不对了?难道读英文又成了读1个字节吗。有些不解?
      

  3.   

    FileReader读取时,读取字符,并不局限在2个字节。根据字符读取,可能是1个字节或者两个字节。