之前的File类只是针对文件本身进行操作的,而如果相对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随即读取类,可以随机的读取一个文件中指定位置的数据。
因为在文件中,所有得内容都是按照字节存放的,都有固定的保存位置。
构造函数:
public RandomAccessFile(File file,String mode)throws FileNotFoundException
实例化此类的时候需要传递File类。告诉程序应该操作的是哪个文件,之后有个模式,文件的打开模式,常用的两种模式:
- r:读
- w:写
- rw:读写,如果使用此模式,如果文件不存在,则会自动创建
先写信息:
1 import java.io.File; 2 import java.io.IOException; 3 import java.io.RandomAccessFile; 4 5 public class Test9 { 6 public static void main(String[] args) throws IOException { 7 File f = new File("d:" + File.separator+"test.txt"); 8 RandomAccessFile raf=new RandomAccessFile(f,"rw");//读写模式,如果该路径不存在会自动创建 9 String name1="jim"; 10 int age1 =20; 11 String name2="Tom"; 12 int age2=30; 13 raf.writeBytes(name1); 14 raf.writeInt(age1); 15 raf.writeBytes(name2); 16 raf.writeInt(age2); 17 raf.close(); 18 } 19 }
然后读文件:
1 import java.io.File; 2 import java.io.IOException; 3 import java.io.RandomAccessFile; 4 5 public class Test10 { 6 public static void main(String[] args) throws IOException { 7 File f = new File("d:" + File.separator+"test.txt"); 8 RandomAccessFile raf=new RandomAccessFile(f,"r");//以读模式打开 9 raf.skipBytes(7);//跳过第一个人的信息 10 byte[] bs=new byte[3]; 11 for(int i=0;i