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

public class EmpReader {

public static void main(String[] args) { 
    List<Emp> empList = new ArrayList<>(); 
    try (RandomAccessFile raf = new RandomAccessFile("emp.dat", "r")) { 
        byte[] nameBytes = new byte[32]; 
        byte[] genderBytes = new byte[10]; 
        for (int i = 0; i < 10; i++) { 
            raf.read(nameBytes); 
            String name = new String(nameBytes, StandardCharsets.UTF_8).trim(); 
            short age = raf.readShort(); 
            raf.read(genderBytes); 
            String gender = new String(genderBytes, StandardCharsets.UTF_8).trim(); 
            int salary = raf.readInt(); 
            long hiredate = raf.readLong(); 
            Emp emp = new Emp(name, age, gender, salary, hiredate); 
            empList.add(emp); 
        } 
        Collections.sort(empList); 
        for (Emp emp : empList) { 
            System.out.println(emp); 
        } 
    } catch (IOException e) { 
        e.printStackTrace(); 
    } 
} 

}

class Emp implements Comparable { 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 int compareTo(Emp o) { 
    return Long.compare(this.hiredate, o.hiredate); 
} 

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

}

Java 读取二进制文件并解析成对象,排序输出员工信息

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

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