写入的int数据i读出时变成了乱码

来源:3-1 RandomAccessFile基本操作

mortysmith

2017-10-01 10:32

//RandomAccessFile 

RandomAccessFile  raf = new RandomAccessFile (file,"rw");

//写数字

int i = 24;

raf.writeInt(i);

//读

raf.seek(0);

//读出到字节数组

byte[]  buf = new byte[(int)raf.length()];

raf.read(buf);

       //輸出  

String s2 = new String(buf);

System.out.println(s2);


怎么样才能正常打印出来,如果使用readInt的话只能是

raf.seek(5);

System.out.println(raf.readInt());

像这样指定位置才能读出

希望能和中文一起用字符串打印出来,而不是乱码,可以吗?


写回答 关注

1回答

  • 美丽金
    2017-10-02 20:59:31

    buf中存的是整数的补码,String s2 = new String(buf)解码用的是项目默认的编码,所以会烂码

文件传输基础——Java IO流

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

133769 学习 · 1030 问题

查看课程

相似问题