A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李尧 于 2013-3-2 17:12 编辑

代码如图 如果用注释的那种读取方式 得到结果是 name=李四  age=4  
writeInt是写入4个字节,那么读取的时候 读取4个字节为什么得到的不是写入的97呢?
我用raf.read(by)得到数据后 String age=new String(by);得出结果是name=李四  age=   a  所以应该是读到数据了...
难道说writeInt写入的数据必须用 readInt才可以正确的读出来,这类方法只能用来操作Int类的基本数据?求高人指点一二..多谢....

4 个回复

倒序浏览
本帖最后由 李志卫 于 2013-3-2 16:06 编辑

因为
public int read(byte[] b)
返回的是读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。这里读取四个字节,正确。

回复 使用道具 举报
李志卫 发表于 2013-3-2 16:02
因为
public int read(byte[] b)
返回的是读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数 ...

明白了..实际读到的数据在数组里 read()返回的是数组的长度...是这个意思么?
回复 使用道具 举报
李尧 发表于 2013-3-2 16:29
明白了..实际读到的数据在数组里 read()返回的是数组的长度...是这个意思么? ...

嗯嗯!!
回复 使用道具 举报
李志卫 发表于 2013-3-2 16:35
嗯嗯!!

多谢...哈哈 终于明白了..恶心了我半天...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马