1

従業員の記録があります。6 つのフィールドの長さで、次のようなものがあります。

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

3 人の異なる従業員の 18 行のデータ (従業員ごとに 6 行) を含む .txt ファイルから生データを読み取り、そのデータを特定の従業員レコードに配置する必要があります。これまでのところ、これは私のメインメソッドにあるものです:

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

一度に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

従業員クラスのフィールドにリフレクトを使用できます。これは、配列などとして表すことができます。配列にすべてが入力されたら、別のオブジェクトに変更して入力できます。

唯一の問題は、txt ファイル内のデータの順序がオブジェクトのフィールド リストと同じであるということです。オブジェクト内のフィールドと txt ファイル内のデータ行の間の順序を調整する必要がある場合があります。

于 2012-10-02T20:22:01.553 に答える