2012-10-02 30 views
1

我有一份員工記錄。六個字段長,東西,如將讀取的數據從文件放入記錄

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

我需要從含有三種不同的員工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文件數據的相應行到僱員記錄相應的插槽中。有什麼建議麼?

+0

使用計數器來跟蹤沒有時間讀一個員工記錄,while循環已經用完。然後移動到另一個時..呵呵,但這也是一個問題,因爲你在不同的行中有不同的屬性。 –

+0

如果你正在通過手動解決問題,你會如何決定哪一行數據屬於哪個員工?數據文件的一個片段可能有助於提供更多有用的答案。 – DaveRlz

回答

0

您可以使用反射的Employee類的字段,它可以表示爲一個數組或其他東西。數組填充所有內容後,可以更改爲另一個要填充的對象。

唯一的問題是,txt文件中數據的順序與對象的字段列表相同。您可能需要做些調整對象中的字段與txt文件中的數據行之間的順序。

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; 
} 
+0

我想我已經決定將.txt文件中的所有原始數據轉儲到數組中,然後使用本機索引在行和員工記錄之間導航。當我解決問題時需要更多信息... – indestructible44

相關問題