RandomAccessFile
java.io.RandomAccessFile
用来读写文件数据
RandomAccessFile是基于指针进行读写的,即,RandomAccessFile总是在指针指向的位置读写字节,并且读写后指针会自动向后移动。
RandomAccessFile既可以读取文件数据也可以向文件中写入数据。
读写文件数据
RandomAccessFile raf = new RandomAccessFile("raf.dat","rw");
raf.write(1);
System.out.println("写出完毕!");
raf.close();
读取文件数据
RandomAccessFile raf = new RandomAccessFile("raf.dat","r");
int d = raf.read();
System.out.println(d);
raf.close();
RandomAccessFile提供了方便读写基本类型数据的方法
RandomAccessFile raf = new RandomAccessFile("raf1.dat","rw");
System.out.println("pos:"+raf.getFilePointer());
int max = Integer.MAX_VALUE;
raf.write(max>>>24);
raf.write(max>>>16);
raf.write(max>>>8);
raf.write(max);
System.out.println("pos:"+raf.getFilePointer());
raf.writeInt(max);
System.out.println("pos:"+raf.getFilePointer());
raf.writeLong(1234L);
System.out.println("pos:"+raf.getFilePointer());
raf.writeDouble(123.123);
System.out.println("pos:"+raf.getFilePointer());
raf.seek(0);
System.out.println("pos:"+raf.getFilePointer());
int i = raf.readInt();
System.out.println(i);
raf.seek(8);
long l = raf.readLong();
System.out.println(l);
System.out.println("pos:"+raf.getFilePointer());
double d = raf.readDouble();
System.out.println(d);
System.out.println("pos:"+raf.getFilePointer());
raf.seek(0);
l = raf.readLong();
System.out.println(l);
raf.close();