黑马程序员技术交流社区

标题: 关于RandomAccessFile的中的readInt()疑问,求高人指点. [打印本页]

作者: 李尧    时间: 2013-3-2 15:47
标题: 关于RandomAccessFile的中的readInt()疑问,求高人指点.
本帖最后由 李尧 于 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类的基本数据?求高人指点一二..多谢....


作者: lzw123451    时间: 2013-3-2 16:02
本帖最后由 李志卫 于 2013-3-2 16:06 编辑

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


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

明白了..实际读到的数据在数组里 read()返回的是数组的长度...是这个意思么?
作者: lzw123451    时间: 2013-3-2 16:35
李尧 发表于 2013-3-2 16:29
明白了..实际读到的数据在数组里 read()返回的是数组的长度...是这个意思么? ...

嗯嗯!!
作者: 李尧    时间: 2013-3-2 16:38
李志卫 发表于 2013-3-2 16:35
嗯嗯!!

多谢...哈哈 终于明白了..恶心了我半天...




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2