直接贴代码了,不懂的地方留言讨论
package org.mark.randomaccessfile; import java.io.File; import java.io.FileNotFoundException; import java.io.RandomAccessFile; public class RandomAccessfileDemo2 { /** * @param args * @throws Exception */ public static void main(String[] args)throws Exception{ // TODO Auto-generated method stub File file = new File("d:" +File.separator+"test.txt");//指定要操作的文件 RandomAccessFile rdf = null; //声明randomaccessfile类 try { rdf = new RandomAccessFile(file, "r"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }//读文件 String nameString = null; int age = 0; byte b[] = new byte[8];//开辟byte数组 //读取第二个人的信息,意味着要空出第一个人的信息 rdf.skipBytes(12);// skipBytes跳过第一个人的信息 for (int i = 0; i < b.length; i++) { b[i] = rdf.readByte(); //读取一个字节 } //String有个方法,String(byte[] bytes) 读出bytes nameString = new String(b);//读取 age = rdf.readInt();//读取数字 System.out.println("第二个人的信息——>姓名:" + nameString + ",年龄:" +age); //读取第一个人的信息 rdf.seek(0);//指针回到文件的开头 for (int i = 0; i < b.length; i++) { b[i] = rdf.readByte(); // 读取一个字节 } //String有个方法,String(byte[] bytes) 读出bytes nameString = new String(b);//读取 age = rdf.readInt();//读取数字 System.out.println("第一个人的信息——>姓名:" + nameString + ",年龄:" +age); //如果要空出第二个人的信息,则再使用 rdf.skipBytes(12); rdf.skipBytes(12); for (int i = 0; i < b.length; i++) { b[i] = rdf.readByte(); //读取一个字节 } //String有个方法,String(byte[] bytes) 读出bytes nameString = new String(b);//读取 age = rdf.readInt();//读取数字 System.out.println("第三个人的信息——>姓名:" + nameString + ",年龄:" +age); rdf.close(); //关闭 } }