package homework;

import java.io.IOException; import java.io.RandomAccessFile; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List;

public class Test08 { public static void main(String[] args) { List list = new ArrayList<>(); RandomAccessFile raf = null; try { raf = new RandomAccessFile("emp.dat", "r"); for (int i = 0; i < raf.length() / 56; i++) { byte[] data = new byte[32]; raf.read(data); String name = new String(data, "UTF-8").trim(); short age = raf.readShort(); data = new byte[10]; raf.read(data); String gender = new String(data, "UTF-8").trim(); int salary = raf.readInt(); long hiredate = raf.readLong(); Emp emp = new Emp(name, age, gender, salary, hiredate); list.add(emp); } Collections.sort(list, new Comparator() { @Override public int compare(Emp o1, Emp o2) { return (int) (o2.getHiredate() - o1.getHiredate()); } }); for (Emp emp : list) { System.out.println(emp); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (raf != null) { raf.close(); } } catch (IOException e) { e.printStackTrace(); } } } }

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

public Emp() {
}

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 void setName(String name) {
    this.name = name;
}

public short getAge() {
    return age;
}

public void setAge(short age) {
    this.age = age;
}

public String getGender() {
    return gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public int getSalary() {
    return salary;
}

public void setSalary(int salary) {
    this.salary = salary;
}

public long getHiredate() {
    return hiredate;
}

public void setHiredate(long hiredate) {
    this.hiredate = hiredate;
}

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

}

Java 使用 RandomAccessFile 读取员工信息并排序输出

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

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