Создание нескольких объектов Java 8 Stream из входного файла - PullRequest
3 голосов
/ 12 марта 2019

Я пытаюсь прочитать файл для захвата параметров, которые будут переданы объектам с использованием потока Java 8.

Формат файла:

10 AA

15 BB

20 УК

Необходимо создать такое же количество объектов, что и количество строк, объекты принимают эти параметры.

Например, объект a = новый объект (10, AA).

Файл всегда будет содержать не более 3 строк.

Я дошел до того, что прочитал файл, проверил, начинается ли он с цифры, разбил его на новую строку и поместил каждую строку в список строк [].

     List<String[]> input = new ArrayList<>();

        try {

          input =  Files.lines(Paths.get("C:\\Users\\ubaid\\IntelliJ Workspace\\Bakery\\input.txt")).
                    filter(lines->Character.isDigit(lines.trim().charAt(0))).map(x-> x.split("\\r?\\n")).collect(Collectors.toList());
        } catch (IOException e) {
            e.printStackTrace();
        }

        for(String a[] : input){
            for(String s : a){
                System.out.println(s);

            }
        }

1 Ответ

3 голосов
/ 12 марта 2019

Если у вас есть:

public class Type {
  private int number;
  private String text;
  // constructor and other methods
}

И файл хорошо отформатирован:

List<Type> objs = Files.lines(path)
    .map(s -> s.split(" "))
    .map(arr -> new Type(Integer.parseInt(arr[0]), arr[1]))
    .collect(Collectors.toList());
System.out.println(objs);
...