Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FileBackedTasksManager extends InMemoryTaskManager {
- private final Path pathToSave;
- private static final String HEADER = "ID,TYPE,NAME,STATUS,DESCRIPTION,EPIC\n";
- private static int id = 0;
- private FileBackedTasksManager(String file) {
- this.pathToSave = Paths.get(file);
- }
- public static void main(String[] args) throws IOException {
- FileBackedTasksManager fileBackedTasksManager = new FileBackedTasksManager("src/files/file.csv");
- // Создаем экземпляры задач
- Task task1 = new Task(fileBackedTasksManager.calcId(), "taskName_1", "taskDescription_1");
- Task task2 = new Task(fileBackedTasksManager.calcId(), "taskName_2", "taskDescription_2");
- Epic epic1 = new Epic(fileBackedTasksManager.calcId(), "epicTaskName_1", "epicTaskDescription_1");
- Subtask subtask11 = new Subtask(fileBackedTasksManager.calcId(), "subTaskName_11", "subTaskDescription_11");
- Subtask subtask12 = new Subtask(fileBackedTasksManager.calcId(), "subTaskName_12", "subTaskDescription_12");
- Task task3 = new Task(fileBackedTasksManager.calcId(), "taskName_3", "taskDescription_3");
- // Добавляем задачи в мапы
- fileBackedTasksManager.putTask(task1);
- fileBackedTasksManager.putTask(task2);
- fileBackedTasksManager.putTask(task3);
- fileBackedTasksManager.putEpicTask(epic1);
- fileBackedTasksManager.putSubTask(epic1, subtask11);
- fileBackedTasksManager.putSubTask(epic1, subtask12);
- // Обновляем задачи
- fileBackedTasksManager.updateTask(1, task1, Status.IN_PROGRESS);
- fileBackedTasksManager.updateEpicTask(3, epic1);
- fileBackedTasksManager.updateSubTask(4, subtask11, Status.IN_PROGRESS);
- // Печатаем списки задачи
- System.out.println("Печать списков задач после изменений");
- fileBackedTasksManager.getTaskMap().forEach((key, value) -> System.out.println(key + " " + value));
- fileBackedTasksManager.getEpicTaskMap().forEach((key, value) -> System.out.println(key + " " + value));
- fileBackedTasksManager.getSubTaskMap().forEach((key, value) -> System.out.println(key + " " + value));
- System.out.println();
- //Вызов истории
- fileBackedTasksManager.getTaskByID(1);
- fileBackedTasksManager.getTaskByID(3);
- fileBackedTasksManager.getTaskByID(4);
- fileBackedTasksManager.getTaskByID(1);
- fileBackedTasksManager.getTaskByID(6);
- System.out.println("Печать истории");
- fileBackedTasksManager.history().forEach(System.out::println);
- System.out.println();
- fileBackedTasksManager.removeFromHistory(6);
- System.out.println("Печать истории после удаления задачи id 6 из истории");
- fileBackedTasksManager.history().forEach(System.out::println);
- System.out.println();
- // Восстанавливаем менеджер из файла
- System.out.println("Восстанавливаем менеджер задач");
- File file = new File("src/files/file.csv");
- FileBackedTasksManager restoredManager = loadFromFile(file);
- System.out.println("Печать восстановленных задач (проверка)");
- restoredManager.getTaskMap().forEach((key, value) -> System.out.println(key + " " + value));
- restoredManager.getEpicTaskMap().forEach((key, value) -> System.out.println(key + " " + value));
- restoredManager.getSubTaskMap().forEach((key, value) -> System.out.println(key + " " + value));
- System.out.println();
- System.out.println("Печать строки истории просмотров");
- System.out.println(toString(fileBackedTasksManager.history));
- System.out.println(fromStringHistory(toString(fileBackedTasksManager.history)));
- System.out.println();
- System.out.println("Печать восстановленной истории просмотров");
- restoredManager.history().forEach(System.out::println);
- System.out.println();
- System.out.println("Печать нового id, с которого начнется отсчет новых задач");
- System.out.println(id);
- System.out.println();
- System.out.println("Для проверки создадим новую задачу taskName_7 в restoredManager и распечатаем все задачи");
- Task task7 = new Task(restoredManager.calcId(), "taskName_7", "task_Description_7");
- restoredManager.putTask(task7);
- restoredManager.getAllTasks().forEach((key, value) -> System.out.println(key + " " + value));
- }
- private static FileBackedTasksManager loadFromFile(File file) throws IOException {
- FileBackedTasksManager restoredManager = new FileBackedTasksManager(file.getPath());
- List<String> fileLines = Files.readAllLines(Path.of(file.getPath()));
- for (int i = 1; i < (fileLines.size()); i++) {
- if (i < fileLines.size() - 2) {
- addTask(restoredManager, fileLines.get(i));
- } else if (i == (fileLines.size() - 1)) {
- List<Integer> history = fromStringHistory(fileLines.get(i));
- for (Integer elem : history) {
- restoredManager.getTaskByID(elem);
- }
- }
- }
- String[] lastTaskLine = fileLines.get(fileLines.size() - 3).trim().split(",");
- id = Integer.parseInt(lastTaskLine[0]);
- return restoredManager;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment