package com.demo;

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 Test { public static void main(String[] args) { RandomAccessFile raf = null; List list = new ArrayList(); try { raf = new RandomAccessFile("emp.dat", "r"); byte[] data = new byte[32]; for (int i = 0; i < 10; i++) { //读取name raf.read(data); String name = new String(data, "UTF-8").trim(); //读取age short age = raf.readShort(); //读取gender raf.read(data); String gender = new String(data, "UTF-8").trim(); //读取salary int salary = raf.readInt(); //读取hiredate long hiredate = raf.readLong(); Emp emp = new Emp(name, age, gender, salary, hiredate); list.add(emp); } //按照员工入职从晚到早排序 Collections.sort(list, new Comparator() { public int compare(Emp o1, Emp o2) { if (o1.getHiredate() > o2.getHiredate()) { return -1; } else if (o1.getHiredate() < o2.getHiredate()) { return 1; } return 0; } }); //输出员工信息 for (Emp emp : list) { System.out.println(emp); } } catch (IOException e) { e.printStackTrace(); } finally { if (raf != null) { try { 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(String name, short age, String gender, int salary, long hiredate) {
    super();
    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/oH7C 著作权归作者所有。请勿转载和采集!

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