From a98265b44ef31cd1d9d2bf3e3539a0c36aff8b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BE=D0=BB=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=93=D0=B5?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D0=BD?= Date: Tue, 1 Sep 2026 22:24:06 +0400 Subject: [PATCH] feat(creation): implement file-based collection strategy - add file settings to FileFillStrategy - read students from CSV using StudentCsvReader - create collection from file data - handle file reading errors --- .../ui/creation/file/FileFillStrategy.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ru/project/ui/creation/file/FileFillStrategy.java b/app/src/main/java/ru/project/ui/creation/file/FileFillStrategy.java index 51f14f8..85cca03 100644 --- a/app/src/main/java/ru/project/ui/creation/file/FileFillStrategy.java +++ b/app/src/main/java/ru/project/ui/creation/file/FileFillStrategy.java @@ -1,19 +1,37 @@ package ru.project.ui.creation.file; +import java.io.IOException; +import java.nio.file.Path; +import ru.project.collection.MyLinkedList; import ru.project.collection.MyList; +import ru.project.io.StudentCsvReader; import ru.project.student.Student; import ru.project.ui.creation.FillStrategy; public class FileFillStrategy implements FillStrategy { - // private final FileFillSettings settings; + private final FileFillSettings settings; public FileFillStrategy(FileFillSettings settings) { - // this.settings = settings; + this.settings = settings; } @Override public MyList create() { - return null; + MyList collection = new MyLinkedList<>(); + + Path path = Path.of(settings.getAbsoluteFilePath()); + + try (StudentCsvReader reader = new StudentCsvReader(path)) { + + while (reader.hasNext()) { + collection.add(reader.next()); + } + + } catch (IOException e) { + throw new RuntimeException("Не удалось прочитать коллекцию из файла.", e); + } + + return collection; } }