JAVA RandomAccessFile 类
来源:互联网 发布:潘建伟事件 知乎 编辑:程序博客网 时间:2024/05/22 07:59
RandomAccessFile 类的主要功能成随机的读取操作,本身也可以直接向文件中保存内容
如果要想实现随机读取,则在存储数据的时候要保证 数据长度的一致性,否则是无法实现功能的。
RandomAccessFile 的构造方法
public RandomAccessFile(File file,String mode) throws FileNotFoundException
需要接收一个File 类的实例,并设置一个操作的模式:
读模式:r
写模式:w
读写模式:rw
其中最重要的是读写模式,如果操作的文件不存在,则会帮用户自动创建
使用RandomAccessFile 进行写入的操作
使用从DataOutput接口中实现的一系列的writeXXX()方法写入数据
package org.randomaccessfile;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;public class RandomAccessFileDemo01 {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException { //所有异常抛出// TODO Auto-generated method stubFile file = new File("D:"+File.separator+"demo.txt"); //指定要操作的文件RandomAccessFile raf = new RandomAccessFile(file,"rw"); //以读写的形式进行操作 //写入第一条数据String name = "Zhangsan"; //表示姓名int age = 20; //表示年龄raf.writeBytes(name); //以字节的方式将字符串写入raf.writeInt(age); //写入整形数据 //写入第二条数据 name = "lisi "; //表示姓名age = 21; //表示年龄raf.writeBytes(name); raf.writeInt(age);name = "wangwu ";age = 22;raf.writeBytes(name);raf.writeInt(age);raf.close(); //文件操作的最后一定要关闭}}
使用RandomAccessFile 进行读取的操作
在RandomAccessFile 操作的时候读取的方法都是从DataInput 接口实现而来,有一系列的readXXX()方法,可以读取各种类型的数据
但是在RandomAccessFile 中因为可以实现随机的读取,所以有一系列的控制方法
回到读取点:public void seek(long pos) throws IOException
跳过多少个字节:public int skipBytes(int n) throws IOException
下面就进行读取的操作:
package org.randomaccessfile;import java.io.File;import java.io.FileNotFoundException;import java.io.RandomAccessFile;public class RandomAccessFileDemo02 {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception { //所有异常抛出// TODO Auto-generated method stubFile file = new File("D:"+File.separator+"demo.txt"); //指定要操作的文件RandomAccessFile raf = new RandomAccessFile(file,"r"); //以读的形式进行操作byte bt[] = new byte[8]; //定义字节数组int age = 0;raf.seek(12); //跨过第一个人的信息for (int i=0;i<8;i++){bt[i] = raf.readByte(); //读取字节}age = raf.readInt();System.out.println("姓名:"+new String(bt)+"年龄:"+age);raf.seek(0); //回到开始位置for (int i=0;i<8;i++){bt[i] = raf.readByte(); //读取字节}age = raf.readInt(); //读取数字System.out.println("姓名:"+new String(bt)+"年龄:"+age);raf.skipBytes(12); //跨过第二个人的信息for (int i=0;i<8;i++){bt[i] = raf.readByte();}age = raf.readInt();System.out.println("姓名:"+new String(bt)+"年龄:"+age);raf.close(); //文件操作的最后一定要关闭}}
- java的RandomAccessFile类
- JAVA RandomAccessFile 类
- java的RandomAccessFile类
- Java IO--RandomAccessFile类
- Java IO-RandomAccessFile类
- java中RandomAccessFile类
- java RandomAccessFile类
- java 中的RandomAccessFile类
- java RandomAccessFile 类
- java IO流 RandomAccessFile类
- JAVA IO系列----RandomAccessFile类
- java IO之 RandomAccessFile类
- java中RandomAccessFile类用法
- Java IO之RandomAccessFile类
- java RandomAccessFile类的用法
- java学习6 RandomAccessFile类
- JAVA 的 RandomAccessFile类用法
- java Io RandomAccessFile类 笔记
- OGNL学习(一)Ognl和OgnlContext
- PHP缓存之redis中文文档(收集整理)
- rails+mysql环境
- 怎样编写出优雅代码
- 自己用
- JAVA RandomAccessFile 类
- 杭电ACM 2036 改革春风吹满地
- Archie osgEarth Step By Step②Earth File分析
- SAP HANA HDB 命令
- 金山软件宣布王育林为旗下子公司金山云总裁
- 2013微软WP系统或与安卓、iOS成三足鼎立
- java mail学习笔记4——Message类详解
- 项目管理入门
- 《vi和vim》 学习手记(2)