RandomAccessFile
来源:互联网 发布:语音网络类型 umts 编辑:程序博客网 时间:2024/05/10 18:26
(1)作用
用于根据字节偏移量来操作文件中的数据。
注意:只能实现文件中数据的读取和修改,根本无法做到插入!(当然,将文件大小扩容,并且插入位置后的数据全部后移也是一种方法)
(2)常用方法
1)构造方法
public RandomAccessFile(String name, String mode)name:文件的路径
mode:r——只读 rw——读写
2)绝对跳跃
public native void seek(long pos)也就是相对于文件开头跳过多少字节
3)相对跳跃
public int skipBytes(int n)相对当前位置跳跃多少个字节
(3)实例
@Testpublic void testRaf(){RandomAccessFile file = null;try {file = new RandomAccessFile("d:\\BugReport.txt", "rwd");for (int i = 0; i < 5; i++) {file.writeInt(i);}//修改第二个数据(因为int类型为4byte,所以*4),绝对定位file.seek(2*4);file.writeInt(6);System.out.println("打印所有数据:修改后");file.seek(0);for (int i = 0; i < file.length()/4-1; i++) {System.out.println(file.readInt());}System.out.println("打印位置跳跃后数据");file.seek(0);//相对当前位置跳过4个字节file.skipBytes(1*4);//相对定位System.out.println(file.readInt());} catch (FileNotFoundException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if (file!=null) {try {file.close();} catch (IOException e) {e.printStackTrace();}}}}结果为:
打印所有数据:修改后01634打印位置跳跃后数据1
(4)总结
只适合于其中记录大小完全相同的文件,其他情况下使用起来相当麻烦
另外,也不要用这个了,使用nio的内存映射来做
0 0
- RandomAccessFile
- randomAccessFile
- RandomAccessFile
- randomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- RandomAccessFile
- 杭电acm--2097
- HDU 5461 沈阳网络赛
- 网易面试总结
- wxWidgets Tips: 用 Visual Studio 2015 编译 wxWidgets
- linux挂载samba共享文件夹
- RandomAccessFile
- C语言_删除相同的字符(华为笔试题)
- iOS UIAlertController 弹框 (ios 9.0 后代替了UIAlertView弹框 和 UIActionSheet下弹框)
- 【NOI2012】随机数生成器
- SQL语句
- HDU 5459 Jesus Is Here(斐波那契递推 取模)
- HMM前向算法,维比特算法,后向算法,前向后向算法代码
- Note On <Beginning ASP.NET 3.5> Chp 10 & <Professional ASP.NET 3.5 SP1 Edition> Chp 19
- ecshop在PHP 5.4以上版本各种错误问题处理