java.io.RandomAccessFile
- 实现了DataInput和DataOutput接口
- 实现随机存取,既可以做为输入,又可以实现输出
- 可以跳到文件中的任何一个位置输入或输出 input.seek(pos)/output.seek(pos)
- 获取当前文件指针所在的位置 getFilePointer()
- 得到的结果是相对与文件起始地址的字节数
输出输入演示代码
public class Test {
public static void main(String[] args) {
output();
input();
}
public static void output() {
try {
RandomAccessFile output = new RandomAccessFile("test.txt", "rw");// 如果没有会自动创建文件
for (int i = 0; i < 10; ++i)
output.writeInt(i);
output.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void input() {
try {
RandomAccessFile input = new RandomAccessFile("test.txt", "rw");
int len = 0;
input.seek(4); //定位到从第四个字节开始读
while((len = input.readInt())!= -1) { //每次读取四个字节
System.out.print(input.getFilePointer() + " ");
System.out.println(len);
}
input.close();
} catch (IOException e) {
}
}
}