/
DevDenzo
/
StudentFileManager
Обзор
Документация
Войти
/
DevDenzo
/
StudentFileManager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
bugfix
Main.java
78 строк
3 KB
Denis Sklyarskij
processing file with nino package
16 дек 2025, 03:27
16 дек 2025, 03:27
31134df
Код
Авторство
О чём код?
import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; public class Main { public static void main(String[] args) { List<Student> students = new ArrayList<>(); try { List<String> lines = Files.readAllLines( Paths.get("students.txt"), StandardCharsets.UTF_8 ); for (String line : lines) { if (line.trim().isEmpty()) { continue; } String[] parts = line.split(",", 2); String name = parts[0].trim(); String bookPart = parts[1]; List<Book> bookList = new ArrayList<>(); for (String bookStr : bookPart.split(";")) { String[] bookData = bookStr.split(",", 3); if (bookData.length == 3) { try { Book book = new Book( bookData[0].trim(), Integer.parseInt(bookData[1].trim()), Integer.parseInt(bookData[2].trim()) ); bookList.add(book); } catch (Exception e) { System.err.println("Ошибка при создании книги: " + bookStr); } } else { System.err.println("Неверный формат: " + bookStr); } } students.add(new Student(name, bookList)); } } catch (IOException e) { System.err.println("Ошибка при чтении файла"); } students.forEach(student -> { AtomicInteger counter = new AtomicInteger(1); System.out.println("Список книг студента: " + student.getName()); student.getBooks().stream() .distinct() .filter(book -> book.getYear() > 2000) .sorted(Comparator.comparing(Book::getPages)) .limit(3) .peek(book -> System.out.println( "[" + counter.getAndIncrement() + "] " + "Название: " + book.getTitle() + ", год: " + book.getYear() + ", страниц: " + book.getPages() )) .map(Book::getYear) .findFirst() .ifPresentOrElse( year -> System.out.println("Результат Optional от года: " + year), () -> System.out.println("У студента отсутствуют книги, напечатанные после 2000 года") ); }); } }