使用字符串解析器并将输入文件传递给arraylist

时间:2018-05-05 23:37:27

标签: java parsing arraylist

您好,我试图读取一个文件并将其存储在数据列表中,但我已经被困在这里了。我还需要使用String.split(),我不知道放在哪里。有什么我错过了吗?

我的代码是:

import java.util.ArrayList;
import java.io.*;
import java.util.Scanner;

public class Employee
{
    private ArrayList<Employee> employees;
    private String name;
    public Employee()
    {
        employees = new ArrayList<Employee>();
        name = "";
    }

    public void readFile()
    {
        String filename = ("employees.txt");

        try
        {   FileReader inputFile = new FileReader(filename);

            try
            {
                while (parser.NextLine())
                {
                    Scanner parser = new Scanner(inputFile);
                    String employeeType = parser.nextLine();
                    System.out.println(employeeType);
                    String employeeNumber = parser.nextLine();
                    System.out.println(employeeNumber);
                    String employeeName = parser.nextLine();
                    System.out.println(employeeName);
                }
            }
            finally
            {
                System.out.println("Closing file");
                inputFile.close();
            }
        }
        catch (FileNotFoundException exception)
        {
            System.out.println(filename + "not found");
        }
        catch(IOException exception)
        {
            System.out.println("Unexpected I/O error occured");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

假设您拥有并输入文件如下:

  

jinny程序员50000
  约翰经理75000

您已正确设置了一些内容,但您必须考虑的是如何实例化Employee(它似乎只有一个无参数构造函数)。假设difftime有一个名字,一个标题和一个薪水。这些是您Employee的属性。当您在文件中读取时,您希望在读取每一行时设置单个Employee类型的这些属性,其属性由示例文件中的空白字符拆分。

Employee

此外,对于遇到的每位员工,您都希望在员工之外构建一个包含员工信息的集合。

考虑以下public class Employee { private String name; private String title; private Integer salary; //constructor + getters + setters } 类之外可能存在的示例。这将是您从数据文件中收集员工的方式,并填充员工的属性。

Employee