From cb5068465d8749555ba822af177862187f9ca0a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D1=80=D1=88=D0=BE=D0=B2=20=D0=92=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D0=B8=D1=81=D0=BB=D0=B0=D0=B2?= Date: Sun, 30 Aug 2026 22:38:01 +0700 Subject: [PATCH] refactor: integrate StudentCsvParser into FileDataSource --- .../ru/project/datasource/FileDataSource.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 app/src/main/java/ru/project/datasource/FileDataSource.java diff --git a/app/src/main/java/ru/project/datasource/FileDataSource.java b/app/src/main/java/ru/project/datasource/FileDataSource.java new file mode 100644 index 0000000..62c1d83 --- /dev/null +++ b/app/src/main/java/ru/project/datasource/FileDataSource.java @@ -0,0 +1,39 @@ +package ru.project.datasource; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.stream.Collector; +import ru.project.student.Student; +import ru.project.collection.MyList; +import ru.project.collection.MyLinkedList; + +public class FileDataSource implements DataSource{ + private final String fileName; + + public FileDataSource(String fileName) { + this.fileName = fileName; + } + + @Override + public MyList create() { + MyList resultList = new MyLinkedList<>(); + try { + StudentCsvReader reader = new StudentCsvReader(fileName); + while reader.hasNext() { + result.append(reader.next()); + } + } + catch (IllegalArgumentException e){ + System.out.println(e.getMessage()); + return null; + } + catch (NoSuchElementException e){ + System.out.println("No such element"); + return null; + } + } +}