RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件。
RandomAccessFile不属于InputStream和OutputStream类系的。
public static void main(String args[]) throws Exception
{
File file = new File("F:"+File.separator+"work"+File.separator+"60"+File.separator+"60.txt");
String s = args[0];
if(s.equals("w"))
{
RandomAccessFile raf = new RandomAccessFile(file, "rw");
write(raf);
}else if(s.equals("r")){
RandomAccessFile raf = new RandomAccessFile(file, "r");
read(raf);
}
}
//随机写
public static void write(RandomAccessFile raf) throws Exception
{
String n = "zhangsan"; //8个字节
int age = 29; //4个字节
raf.writeBytes(n);
raf.writeInt(age);
n = "lisi"; //4个字节
age = 33; //4个字节
raf.writeBytes(n);
raf.writeInt(age);
n="wangwu";
age = 40;
raf.writeBytes(n);
raf.writeInt(age);
raf.close();
}
//随机读
public static void read(RandomAccessFile raf) throws Exception
{
byte b[] = null;
String name = null;
int age = 0;
b = new byte[8];
raf.skipBytes(8);
System.out.println("这是第二个人的信息");
for(int i = 0; i< 8; i++)
{
b[i] = raf.readByte(); //读取字符
}
age = raf.readInt(); //读取字符
System.out.println("姓名:" + new String(b));
System.out.println("年龄:" + age);
raf.close();
}