/
Shalva
/
Lab4_DataPipeline
Обзор
Документация
Войти
/
Shalva
/
Lab4_DataPipeline
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/console/ConsoleApp.java
79 строк
3 KB
Kvaratskheliia Shalva
Исходный код к проекту Lab4_DataPipeline
14 июн 2026, 18:57
14 июн 2026, 18:57
ac72959
Код
Авторство
О чём код?
package console; import core.DataProcessor; import core.FileUtils; import models.InputArgs; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class ConsoleApp { public static void main(String[] args) { System.out.println("=== Старт интерактивной обработки данных ==="); try (Scanner scanner = new Scanner(System.in)) { System.out.print("Введите путь к входному файлу (например, test/input01.txt): "); String inputPath = scanner.nextLine().trim(); System.out.print("Введите путь к файлу результата (нажмите Enter, чтобы вывести только в консоль): "); String outputPath = scanner.nextLine().trim(); System.out.print("Введите величину циклического сдвига k (целое число): "); String kStr = scanner.nextLine().trim(); List<String> mockArgsList = new ArrayList<>(); mockArgsList.add("-i"); mockArgsList.add(inputPath); if (!outputPath.isEmpty()) { mockArgsList.add("-o"); mockArgsList.add(outputPath); } mockArgsList.add(kStr); String[] finalArgs = mockArgsList.toArray(new String[0]); InputArgs inputArgs = new InputArgs(finalArgs); System.out.println("\nКонфигурация успешно принята."); List<Integer> initialData = FileUtils.readIntegerListFromFile(inputArgs.getInputFileName()); System.out.println("Загруженные числа из файла: " + initialData); String[] pipelineInput = new String[initialData.size() + 1]; for (int i = 0; i < initialData.size(); i++) { pipelineInput[i] = String.valueOf(initialData.get(i)); } pipelineInput[pipelineInput.length - 1] = String.valueOf(inputArgs.getShiftK()); System.out.println("Запуск конвейера обработки..."); String[] pipelineResult = DataProcessor.processPipeline(pipelineInput); System.out.println("\nРезультат обработки (Консоль): " + Arrays.toString(pipelineResult)); if (inputArgs.hasOutputFile()) { List<Integer> finalData = Arrays.stream(pipelineResult) .map(Integer::parseInt) .toList(); FileUtils.writeIntegerListToFile(inputArgs.getOutputFileName(), finalData); System.out.println("Результаты успешно сохранены в файл: " + inputArgs.getOutputFileName()); } else { System.out.println("Запись в файл пропущена."); } } catch (IllegalArgumentException e) { System.err.println("\nОшибка параметров: " + e.getMessage()); } catch (IOException e) { System.err.println("\nОшибка ввода-вывода (IO): " + e.getMessage()); } catch (Exception e) { System.err.println("\nНепредвиденная ошибка: " + e.getMessage()); e.printStackTrace(); } System.out.println("=== Завершение работы ==="); } }