используя анализатор строк и передавая входной файл в arraylist - PullRequest
0 голосов
/ 06 мая 2018

Привет, я пытаюсь прочитать файл и сохранить его в списке массивов, но я застрял здесь. Мне также нужно использовать 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 голосов
/ 06 мая 2018

Предположим, у вас есть и входной файл следующим образом:

Джинни программист 50000
Джон менеджер 75000

Вы настроили несколько вещей правильно, но вы должны учитывать, как вы создаете экземпляр Employee (который, похоже, имеет только конструктор без аргументов). Допустим, у Employee есть имя, должность и зарплата. Это атрибуты вашего Employee. Когда вы читаете в своем файле, вы хотите установить эти атрибуты одного типа Employee, когда читаете каждую строку, атрибуты которой разделяются символом пробела в файле примера.

public class Employee {
    private String name;
    private String title;
    private Integer salary;

    //constructor + getters + setters
}

Кроме того, для каждого сотрудника, с которым вы столкнулись, вы захотите создать коллекцию вне сотрудника, которая содержит информацию о вашем сотруднике.

Рассмотрим следующий пример того, что может существовать вне класса Employee. Это будет то, как вы собираете своих сотрудников из файла данных и заполняете атрибуты сотрудника.

public static void main(String... args) {
    List<Employees> employees = readFile();

    //continue work on employees here
}

public static List<Employee> readFile()
{
    String filename = ("employees.txt");

    try
    {   FileReader inputFile = new FileReader(filename);

        Scanner scanner = new Scanner(inputFile);

        try
        {
            while (scanner.hasNextLine())
            {
                Employee e = new Employee();

                String line = scanner.nextLine();

                String [] lineSplit = line.split(" ");

                //populate employees here OR use a constructor on employee that accepts all 3 parameters
            }
        }

     //continue implementation here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...