Java: RandomAccessFile
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相关推荐
- Java RandomAccessFile示例
Java RandomAccessFile provides the facility to read and write data to a file. RandomAccessFile works ...
- Java RandomAccessFile的使用
Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方.这就是"Random"的意 ...
- Java RandomAccessFile close()方法与示例
RandomAccessFile类close()方法 (RandomAccessFile Class close() method) close() method is available in ja ...
- Java RandomAccessFile readInt()方法与示例
RandomAccessFile类readInt()方法 (RandomAccessFile Class readInt() method) readInt() method is available ...
- Java RandomAccessFile writeBytes()方法与示例
RandomAccessFile类writeBytes()方法 (RandomAccessFile Class writeBytes() method) writeBytes() method is ...
- Java RandomAccessFile seek()方法与示例
RandomAccessFile类seek()方法 (RandomAccessFile Class seek() method) seek() method is available in java. ...
- Java RandomAccessFile readUTF()方法及示例
RandomAccessFile类readUTF()方法 (RandomAccessFile Class readUTF() method) readUTF() method is available ...
- Java RandomAccessFile readChar()方法及示例
RandomAccessFile类readChar()方法 (RandomAccessFile Class readChar() method) readChar() method is availa ...
- Java RandomAccessFile skipBytes()方法与示例
RandomAccessFile类skipBytes()方法 (RandomAccessFile Class skipBytes() method) skipBytes() method is ava ...
- Java RandomAccessFile getFilePointer()方法与示例
RandomAccessFile类getFilePointer()方法 (RandomAccessFile Class getFilePointer() method) getFilePointer( ...
最新文章
- 判断无线网卡是否支持5GHz频段
- 深入浅出python机器学习_3.3.1_对数据集进行分析
- 三维点云数据处理软件供技术原理说明_海量点云数据处理理论与技术
- windows下安装nginx (转载自:http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/)
- 【leetcode-83】剑指 Offer 18-2 删除排序链表中的重复元素
- linux C之access函数
- 解决:Xshell如何修改默认的登录用户,自动跳转到密码界面
- 湖南单招计算机专业大学排名,2021湖南单招学校排名及分数线:湖南单招分数线高吗?...
- python 一个包中的文件调用另外一个包文件 实例
- 第27课 数组的本质分析
- marven编译时:<pre>错误: 不允许使用自关闭元素</pre>
- Adobe Acrobat reading untagged document window pops up
- 怎样添加网络扫描到计算机名,为扫描仪添加局域网功能
- uni-app之下拉刷新与 上拉加载
- VTM3.0代码阅读:CU、PU、TU
- 固态U盘能装linux么,用u盘在固态硬盘上安装linux 多重开启系统
- 网页中实现图片的毛玻璃效果
- java打字训练课程设计_JavaFX+Java打字练习软件(布局篇)
- 长安链源码学习--提案(Proposer)(五)
- 打开MyMPC的双字幕显示模式