import java.io.*; import java.io.RandomAccessFile; public class nametxt { //复杂问题,第一:员工2年龄显示问题,2 补全空格出现零的问题/ public static void main(String[] args) throws Exception//为什么设置这??? { // TODO 自动生成的方法存根 Employee e1 = new Employee("zhangsan",23); // Employee e2 = new Employee("lisi",224); Employee e2 = new Employee("lisi",24); Employee e3 = new Employee("wangwu",25); RandomAccessFile ra = new RandomAccessFile("c:\\employee.txt","rw"); ra.write(e1.name.getBytes()); ra.writeInt(e1.age); ra.write(e2.name.getBytes()); ra.write(e2.age); ra.write(e3.name.getBytes()); ra.write(e3.age); ra.close(); RandomAccessFile raf=new RandomAccessFile("c:\\employee.txt","r"); int len = 8; raf.skipBytes(12);//跳过第一个员工的信息,其姓名8字节,年龄4字节 System.out.println("第2个员工信息:"); String str = ""; for(int i=0;i<len;i++) str = str+(char)raf.readByte(); System.out.println("name:"+str); System.out.println("age:"+raf.readInt()); System.out.println("第1个员工的信息:"); raf.seek(0);//将文件指针移到文件开始位置 str = ""; for(int i = 0 ;i<len;i++) str = str+(char)raf.readByte(); System.out.println("name:"+str); System.out.println("age:"+raf.readInt()); System.out.println("第三个员工的信息:"); raf.skipBytes(12); str = ""; for(int i = 0;i<len;i++) str = str+(char)raf.readByte(); System.out.println("name:"+str.trim()); System.out.println("age:"+raf.readInt()); raf.close(); } } class Employee { String name; int age; final static int LEN = 8; public Employee(String name,int age) { if(name.length()>LEN) name = name.substring(0,8); else{ while(name.length()<LEN){ name = name+"\u0000"; // System.out.println(name); } } this.name = name; this.age = age; } } 结果: 第2个员工信息: name:lisi ge:410476910 第1个员工的信息: name:zhangsan age:23 第三个员工的信息: name:gwu