项目中用到这个类,发现没用过,漏洞,写一下。
代码
public static void main(String[] args){
// 写入一个整型数组数据到d:/a.txt文件中
RandomAccessFile raf = null;
try {
int data[] = {10,20,30,40,50};// 请分配32bit一组的连续空间,存放数值10,20,30,40,50
raf = new RandomAccessFile("d:/a.txt","rw");//文件d:/a.txt可读写,从任意位置(最小单元,字节)开始
for(int i =0;i<data.length;i++) {
raf.writeInt(data[i]);// 将数值写进文件
}
// 读出第一个整数
System.out.println("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面"); // 查看指针位置
raf.seek(0);
System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
int tmp = raf.readInt();
System.out.println("数据是 "+tmp);
// 读出第二个整数
System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
tmp = raf.readInt();
System.out.println("数据是 "+tmp);
// 读出最后一个整数
raf.seek(4*4);
System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
tmp = raf.readInt();
System.out.println("数据是 "+tmp);
System.out.println();
// 读出文件中所有数据
for(int i=0;i<data.length;i++){
raf.seek(4*i);
System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
tmp = raf.readInt();
System.out.println("数据是 "+tmp);
}
}catch (Exception e) {
e.printStackTrace();
}finally {
try {
raf.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果:
raf.length的结果是raf中设置的文件的字节数量
一个整形4个字节,6个就是24个字节
public static void main(String[] args) {
RandomAccessFile raf = null;
try{
int data[] = {10,20,30,40,50,60};
raf = new RandomAccessFile("d:/c.txt","rw");
for(int i =0;i<data.length;i++){
raf.writeInt(data[i]);
}
long length = raf.length();
System.out.println("文件长度??"+length);// 文件数据的字节个数
}catch (Exception e) {
e.printStackTrace();
}finally {
try{
raf.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果