需求如下:用工具按某格式生成一个unicode文本,再用此工具读取文本显示出来。此文本可能包含数字、汉字、图片内容
现在的情况如下:文本已经生成,但读取的时候情况和我想的有点出入。
bufferread = new BufferedReader(new FileReader(f));
bufferread.read();这里读取的是一个字节而并非我认为的一个字符  即文本:0x00 0x01  那么read一次是00 再read一次就是01 我原来以为只要read一次就应该是01了。BufferedReader不是字符流吗??搞不明白
bufferread.read(ttmm, 0, 5);//这里实际读取的也是5个字节而非字符。。最变态的是这5个字节中如果有>=0x80的存在程序会自动忽略跳过读取下一个,但是长度又不会增加  即:0x01 0x02 0x03 0x80 0x04 0x05 0x06  这里我读取开始的5个字节
理论上读取的应该是01 02 03 80 04 但实际上是01 02 03 04 05。。80被忽略且不纳入长度统计想请坛子里的高人指点下为什么bufferread.read()读取的是字节而非字符?这里的字节字符该如何理解? 为什么>=80的时候会忽略?因为我的文本里面一些保留字段需要写入FF 哪读取的时候不是全乱套了?有何好的解决办法吗??

解决方案 »

  1.   

    楼主搞错了吧?
    BufferedReader你要用他的readLine() 方法才能返回一行字符串.
      

  2.   

    应该跟你的文件保存的是unicode格式有关可以看哈这个
    http://www.softwelt.com/Know/KnowDetail.aspx?Qid=2702311另附API:java.io 
    类 BufferedReaderread
    public int read()
             throws IOException读取单个字符。 覆盖:
    类 Reader 中的 read
    返回:
    作为范围 0 到 65535 (0x00-0xffff) 的整数读入的字符,如果已到达流末尾,则返回 -1 
    抛出: 
    IOException - 如果发生 I/O 错误