概念:
1.RandomAccessFile类 提供了 众多(最多)的 文件 访问 方法;
2.RandomAccessFile类 支持 “随机访问” 方式;//不好画图,类似于vector和iterator方式或者数组指针方式。指示器大概就跟迭代器 一样吧……
3.RandomAccessFlie类 在随机读写 等长记录格式的 文件 时 有优势;//听了这一段的说明觉得指示器就是迭代器……记录格式:内 容有规律可循的格式。
4.RandomAccessFile类 仅限于 操作文件,不能 访问 其他的 IO设备,如网络、内存映像 等;
5.两种构造方式
new RandomAccessFile(f, "rw"); //read & write
new RandomAccessFile(f, "r"); //read only
//C++采用流方式读写文件和设置文件读写状态,跟这个稍微有点不一样。
2.编程实例:往文件中写入三名员工的信息,每个员工含有 姓名 和 年龄 两个字段(字段……数据库?),然后按照第二名,第一名,第三名的先后顺序读出员工信息。(要保证姓名的长度相同。年龄只要是整型数就不要担心长度,都是4字节)
/*
*Employee.java
*/
public class Employee {
public String name = ""; //这里的成员变量竟然是public的让我很不习惯……
public int age = 0;
public static final int LEN = 8;
/**
* Method Employee
*
*
* @param name
* @param age
*
*/
public Employee(String name, int age) {
// TODO: Add your code here
if(name.length() > LEN){ //如果比规定长度长
name = name.substring(0, LEN); //用substring()方法截取规定长度的字符串
} else { //如果比规定长度短
while(name.length() < LEN){
name += "/u0000"; //用一个空字符(空格?)填充,循环至满足长度
}
}
this.name = name; //经过上述处理后,给对象赋标准的值
this.age = age;
}
}