您的位置:首页 > 编程语言 > Java开发

JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile

2015-03-28 10:59 609 查看

RandomAccessFile类

/*
* RandomAccessFile类,随机读写文件
*
* 数据分段要有规律,每段大小相等,可以将每段数据设置为较大的值,足以存在每一个段的数据
*
*/
public class Test04 {
public static void main(String[] args) throws IOException {
//writeFile();
readFile();
}

// 写入数据
public static void writeFile() throws IOException {
//以读写模式创建一个RandomAccessFile实例
RandomAccessFile raf=new RandomAccessFile("D:\\Java\\aaa.txt", "rw");
raf.write("张三".getBytes());
raf.write(97);
raf.writeUTF("欢迎来到南京网博!");
raf.writeInt(20);
raf.writeBoolean(true);
raf.writeDouble(12.5);

raf.write("张三".getBytes());
raf.seek(20);
raf.writeInt(20);
raf.write("李四".getBytes());
raf.seek(24*1+20);
raf.writeInt(18);

//将指针移动到第四个学生的位置,空出第三个学生
raf.seek(24*3);
raf.write("赵小六".getBytes());
raf.seek(24*3+20);
raf.writeInt(23);

System.out.println("写入文件成功!");
raf.close();
}

//读取数据
public static void readFile() throws IOException{
RandomAccessFile raf=new RandomAccessFile("D:\\Java\\aaa.txt", "rw");
String name=new String(buffer);
System.out.println("前6个字节:"+name);

int data=raf.read();
System.out.println("第7个字节:"+(char)data);

String welcome=raf.readUTF();
System.out.println("第8个字节及之后:"+welcome);
raf.seek(24*3);
byte[] buffer=new byte[20];
int num=raf.read(buffer);
System.out.println(num);
System.out.println(Arrays.toString(buffer));
String name=new String(buffer,0,num);
int age=raf.readInt();
System.out.println("第四个学生的信息:");
System.out.println("姓名:"+name+",年龄:"+age);

System.out.println("当前指针的位置:"+raf.getFilePointer());

raf.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  随机读写文件