1.RandomAccessFile
RandomAccessFile适用由大小已知的记录组成的文件,所以我们可以使用seek()将记录从一处转移到另一处;
RandomAccessFile不是InputStream或者OutputStream继承层次的一部分,是自我独立的类;
RandomAccessFile的大部分功能,但不是全部,由nio存储映射文件取代。
2.使用示例
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileTest {
static String file = "test.dat";
static void display() throws IOException{
//以只读方式打开
RandomAccessFile rf = new RandomAccessFile(file,"r");
for(int i=0;i<7;i++){
System.out.println("value:" + i + ":" + rf.readDouble());
}
rf.close();
}
public static void main(String[] args) throws IOException {
//以可读可写方式打开
RandomAccessFile rf = new RandomAccessFile(file,"rw");
//初始数据
for(int i=0;i<7;i++){
rf.writeDouble(i*1.414);
}
rf.writeUTF("end of file");
rf.close();
display();
rf = new RandomAccessFile(file,"rw");
//找到第5个double数据
rf.seek(5*8);
//替换成新数据
rf.writeDouble(47.001);
rf.close();
display();
}
}