RandeomAccessFile虽然是java.io中的成员,但该类只继承了Object类,实现了DataOut, DataIn, Closeable等接口.此类的实例支持对文件的随机访问和读取.随机访问文件的行为类似存储在文件系统中的一个大型byte数组.存在指向该隐含数组的光标或者索引,称为文件指针. 输入操作从文件指针开始读取字节,并随着对字节的读取而前移文件指针.如果随机访问文件以读取/写入的模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而迁移此文件指针.写入隐含数组的当前末尾之后的输出操作导致该数组扩展.该文件指针可以通过getFilePointer方法读取,并通过seek方法设置.

  通过该类的构造函数可以看出,该类只能操作文件,而且操作文件还有模式.    r  rw rwd rws

  如果模式为只读r,不会创建文件,会去读取一个以存在的文件,如果该文件不存在则会出现异常;

  如果模式为rw,该对象的构造函数要操作的文件不存在,则自动创建,如果存在,则不会覆盖.

  seek方法可以设置文件指针的位置;

  skipBytes方法可以跳过指定字节的位置,但该方法只能往前跳,不能往后跳.所以使用没有seek方便.

 1 package Day20;
 2 import java.io.*;
 3
 4 public class RandomAccessFileDemo {
 5
 6     public static void main(String[] args)throws IOException {
 7         //writeFile();
 8         readFile();
 9
10     }
11
12     public static void writeFile()throws IOException{
13         //File file = new File("a.bat");
14         RandomAccessFile raf = new RandomAccessFile("a.txt","rw");
15
16         raf.write("张三".getBytes());
17         raf.writeInt(97);
18         raf.write("李四".getBytes());
19         raf.writeInt(98);
20         raf.write("王五".getBytes());
21         raf.writeInt(99);
22
23         raf.close();
24     }
25
26     public static void readFile()throws IOException{
27         RandomAccessFile raf = new RandomAccessFile("a.txt","r");
28         for(int x=0;x<3;x++)
29         {
30             raf.seek(x*8);
31             byte[] buf = new byte[4];
32             raf.read(buf);
33             String name = new String(buf);
34             int age = raf.readInt();
35             System.out.println(name+":"+age);
36         }
37 //        byte[] buf = new byte[4];
38 //        raf.read(buf);
39 //
40 //        String name = new String(buf);//取前四个字节"张三"
41 //        int age = raf.readInt();//取"张三"后面的97
42 //        System.out.println(name+":"+age);
43         raf.close();
44     }
45
46 }

转载于:https://www.cnblogs.com/siyingcheng/p/4445773.html

Java: RandomAccessFile相关推荐

  1. Java RandomAccessFile示例

    Java RandomAccessFile provides the facility to read and write data to a file. RandomAccessFile works ...

  2. Java RandomAccessFile的使用

    Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方.这就是"Random"的意 ...

  3. Java RandomAccessFile close()方法与示例

    RandomAccessFile类close()方法 (RandomAccessFile Class close() method) close() method is available in ja ...

  4. Java RandomAccessFile readInt()方法与示例

    RandomAccessFile类readInt()方法 (RandomAccessFile Class readInt() method) readInt() method is available ...

  5. Java RandomAccessFile writeBytes()方法与示例

    RandomAccessFile类writeBytes()方法 (RandomAccessFile Class writeBytes() method) writeBytes() method is ...

  6. Java RandomAccessFile seek()方法与示例

    RandomAccessFile类seek()方法 (RandomAccessFile Class seek() method) seek() method is available in java. ...

  7. Java RandomAccessFile readUTF()方法及示例

    RandomAccessFile类readUTF()方法 (RandomAccessFile Class readUTF() method) readUTF() method is available ...

  8. Java RandomAccessFile readChar()方法及示例

    RandomAccessFile类readChar()方法 (RandomAccessFile Class readChar() method) readChar() method is availa ...

  9. Java RandomAccessFile skipBytes()方法与示例

    RandomAccessFile类skipBytes()方法 (RandomAccessFile Class skipBytes() method) skipBytes() method is ava ...

  10. Java RandomAccessFile getFilePointer()方法与示例

    RandomAccessFile类getFilePointer()方法 (RandomAccessFile Class getFilePointer() method) getFilePointer( ...

最新文章

  1. 判断无线网卡是否支持5GHz频段
  2. 深入浅出python机器学习_3.3.1_对数据集进行分析
  3. 三维点云数据处理软件供技术原理说明_海量点云数据处理理论与技术
  4. windows下安装nginx (转载自:http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/)
  5. 【leetcode-83】剑指 Offer 18-2 删除排序链表中的重复元素
  6. linux C之access函数
  7. 解决:Xshell如何修改默认的登录用户,自动跳转到密码界面
  8. 湖南单招计算机专业大学排名,2021湖南单招学校排名及分数线:湖南单招分数线高吗?...
  9. python 一个包中的文件调用另外一个包文件 实例
  10. 第27课 数组的本质分析
  11. marven编译时:<pre>错误: 不允许使用自关闭元素</pre>
  12. Adobe Acrobat reading untagged document window pops up
  13. 怎样添加网络扫描到计算机名,为扫描仪添加局域网功能
  14. uni-app之下拉刷新与 上拉加载
  15. VTM3.0代码阅读:CU、PU、TU
  16. 固态U盘能装linux么,用u盘在固态硬盘上安装linux 多重开启系统
  17. 网页中实现图片的毛玻璃效果
  18. java打字训练课程设计_JavaFX+Java打字练习软件(布局篇)
  19. 长安链源码学习--提案(Proposer)(五)
  20. 打开MyMPC的双字幕显示模式

热门文章

  1. 二维数组作为函数的实参,定义函数形参的方法
  2. 怎么加入链接,可以让微信浏览器直接提示跳出另一个浏览器查看
  3. 《图解HTTP》阅读笔记--第六章--HTTP首部
  4. 12简单推导:切面条
  5. intellij自动补全变量名和变量属性
  6. Vue学习之路---No.1(分享心得,欢迎批评指正)
  7. 怎么样成为一个高手--有悟
  8. [转]老婆还是自己好
  9. IO流-打印流 PrintStream
  10. 《大道至简》最后两章读后感