int型数据读取乱码问题

来源:3-1 RandomAccessFile基本操作

慕粉2138545409

2017-04-24 17:40

把int型数据写入了txt文件,按字符串数据读取时出现了乱码,为什http://img.mukewang.com/58fdc7be0001137609570371.jpg么?

写回答 关注

1回答

  • 未来將来
    2017-04-25 11:51:49

    因为你写的时候是一个字节一个字节写的,所以读的时候也要一个字节一个字节读。(我不确定是不是这个原因)

    两种方式可以正常读到:

    1、raf.seek(0)后面的语句改为:

    int n = raf.readInt();
    System.out.println(raf.getFilePointer());
    System.out.println(n);

    2、raf.seek(0)后面的语句改为:

    byte[] arr = new byte[(int)raf.length()];
    raf.read(arr);
    int n = (int) (arr[0] << 24|arr[1] << 16 | arr[2] << 8 | arr[3]);
    System.out.println(raf.getFilePointer());
    System.out.println(n);


    慕粉3230...

    第二种方法,在做移位和或操作的时候要注意。 int n = (buf[2]&0xff)<<24|(buf[3]&0xff)<<16|(buf[4]&0xff)<<8|(buf[5]&0xff);

    2017-07-13 17:50:15

    共 1 条回复 >

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题