import java.io.IOException; import java.io.RandomAccessFile; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List;

public class Test { public static void main(String[] args) { try (RandomAccessFile raf = new RandomAccessFile("emp.dat", "r")) { List list = new ArrayList<>(); for (int i = 0; i < raf.length(); i += 56) { String name = readString(raf, 32); short age = raf.readShort(); String gender = readString(raf, 10); int salary = raf.readInt(); long hiredate = raf.readLong(); Emp emp = new Emp(name, age, gender, salary, hiredate); list.add(emp); } Collections.sort(list, Comparator.comparingLong(Emp::getHiredate)); for (Emp emp : list) { System.out.println(emp); } } catch (IOException e) { e.printStackTrace(); } }

private static String readString(RandomAccessFile raf, int length) throws IOException {
    byte[] bytes = new byte[length];
    raf.readFully(bytes);
    return new String(bytes, StandardCharsets.UTF_8).trim();
}

}

class Emp { private String name; private short age; private String gender; private int salary; private long hiredate;

public Emp(String name, short age, String gender, int salary, long hiredate) {
    this.name = name;
    this.age = age;
    this.gender = gender;
    this.salary = salary;
    this.hiredate = hiredate;
}

public String getName() {
    return name;
}

public short getAge() {
    return age;
}

public String getGender() {
    return gender;
}

public int getSalary() {
    return salary;
}

public long getHiredate() {
    return hiredate;
}

@Override
public String toString() {
    return "Emp{" +
            "name='" + name + "'" +
            ", age=" + age +
            ", gender='" + gender + "'" +
            ", salary=" + salary +
            ", hiredate=" + hiredate +
            '}';
}

原文地址: https://www.cveoy.top/t/topic/oH8T 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录