------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
RandomAccessFile类也是IO包下面的一个类,它不属于流类,但却具有读写文件数据的功能,可以
随机的从文件任何位置进行读写数据的操作。
RandomAccessFile可以将文件以只读或读写的方式打开,具体使用哪种方法取决于创建他采用的构造方法。
可以看到,在创建对象时,都要传入两个参数
第一个参数都是指定关联的文件
第二个参数mode是指访问模式,在这里,有四个值,但常用的只有两个,分别是“r”,“rw”
“r”——只读模式,表示以只读的方式打开文件,如果文件不存在,会抛出IOException异常。
“rw”——读写模式,表示以读写的方式打开文件,如果文件不存在,会自动创建该文件。
RandomAccessFile在实际开发中也非常的常见。我们经常会看到有些软件在使用的时候,需要付费使用,但一般都会有免费使用次数提供,这里就用到了RandomAccessFile类来实现此功能。
在这里,我也做了一个相应的小练习:
新建一个文本文档,并输入数字5作为软件的试用次数
/**
* RandomAccessFile类实现软件使用次数
* @author Shawn·Zhang
*/
import java.io.IOException;
import java.io.RandomAccessFile;
public class Example09 {
public static void main(String[] args) throws IOException {
String file = "E:\\java\\times.txt";
RandomAccessFile raf = new RandomAccessFile(file, "rw");
int times = 0;//表示试用的次数
times = Integer.parseInt(raf.readLine());//第一次读取文件时times为5
if(times>0){
System.out.println("您还可以试用"+times--+"次");//使用一次,减少一次
raf.seek(0);//使记录指针指向文件的开头
raf.writeBytes(times+"");//将剩余的次数再次写入文件
}else{
System.out.println("软件使用次数已到期");//当times<=0,告诉用户试用已经到期
}
raf.close();//关闭RandomAccessFile对象
}
}
测试结果也如图: