开发者社区> 问答> 正文

RandomAccessFile中read()方法的返回值

`RandomAccessFile raf=
new RandomAccessFile("D:/fis2.txt","rw");
raf.write(100);
raf.seek(0);
int a=raf.read();
System.out.println(a);//输出 100
raf.close();`
之前所了解到的知识是:
read()方法返回值是所读取到byte的个数
以上的返回值如何理解?

展开
收起
蛮大人123 2016-05-27 14:03:15 3556 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你的理解是有误的,read的api是这样的:
    Reads a byte of data from this file. The byte is returned as an integer in the range 0 to 255
    即读取一个字节的数据,并返回这个字节数据对于的byte类型的值。你的代码添加注释如下:

         //将100作为一个字节数据写入文件
                raf.write(100);
                //将指针移到文件开头处
                raf.seek(0);
                //从文件中读取一个字节的数据
                int a = raf.read();
                //输出100说明你读取的一个字节的数据和你先写入的一个字节是同一个
                System.out.println(a);

    主要就是seek(0)操作将文件指针重置到开头位置了,如果你没有这个重置操作,那么你read的数据就不是你先前写入的那个字节的数据了。而是文件的下一个字节的数据。

    2019-07-17 19:17:43
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载