1

我有员工记录。六个字段长,例如

private String name;
private String id;
private double salary;

我需要从包含 18 行数据的 .txt 文件中读取三个不同员工(每位员工 6 行)的原始数据,并将数据放入特定的员工记录中。到目前为止,这就是我的主要方法中的内容:

public static void main(String[] args)
{
    //employee declarations
    Employee e1 = new Employee();
    Employee e2 = new Employee();
    Employee e3 = new Employee();
    int count = 0;
    int emp_count = 0;

    File in_file = new File("EmployeeData.txt");
    Scanner fscan = new Scanner(in_file);

    while(fscan.hasNext())
    {
        e1.set_name

不太确定如何从 txt 文件中获取适当的数据行到员工记录中的相应插槽中。有什么建议么?

4

2 回答 2

1

您可以创建一个单独的函数,一次只读取一个员工记录

public static Employee readEmployeeData(Scanner scanner) {

    Employee employee = new Employee();
    if (scanner.hasNext())
        employee.name = scanner.next();//Use getter setters
    if (scanner.hasNext())
        employee.id = scanner.next();
    if (scanner.hasNextDouble())
        employee.salary = scanner.nextDouble();
    else
        scanner.next();// For double case

    return employee;
}
于 2012-10-02T20:28:51.753 回答
0

您可以将反射用于 Employee 类的字段,它可以表示为数组或其他东西。数组全部填满后,可以换成另一个对象来填充。

唯一的问题是,txt文件中的数据顺序与对象的字段列表相同。您可能应该做一些事情来调整对象中的字段和 txt 文件中的数据行之间的顺序。

于 2012-10-02T20:22:01.553 回答