To-Do это идеальная практика для списков, ввода и работы с файлами. Задачи будем хранить в
ArrayList, а между запусками сохранять в tasks.txt.Задаём файл и загружаем задачи, если он уже существует:
var path = java.nio.file.Path.of("tasks.txt");
var tasks = new java.util.ArrayList<String>();
if (java.nio.file.Files.exists(path))
tasks.addAll(java.nio.file.Files.readAllLines(path));Печатаем меню и читаем команду пользователя:
var sc = new java.util.Scanner(System.in);
boolean run = true;
while (run) {
System.out.println("1) Список 2) Добавить 3) Удалить 0) Выход");
System.out.print("Выбор: ");
var cmd = sc.nextLine().trim();
Выводим текущие задачи с нумерацией:
if (cmd.equals("1")) {
if (tasks.isEmpty()) System.out.println("Задач нет.");
for (int i = 0; i < tasks.size(); i++)
System.out.println((i + 1) + ") " + tasks.get(i));
}Добавляем задачу и сразу сохраняем в файл:
else if (cmd.equals("2")) {
System.out.print("Текст задачи: ");
var t = sc.nextLine();
tasks.add(t);
java.nio.file.Files.write(path, tasks);
System.out.println("Добавлено.");
}Удаляем задачу по номеру и сохраняем обновлённый список:
else if (cmd.equals("3")) {
System.out.print("Номер: ");
int n = Integer.parseInt(sc.nextLine());
if (n >= 1 && n <= tasks.size()) {
tasks.remove(n - 1);
java.nio.file.Files.write(path, tasks);
System.out.println("Удалено.");
} else System.out.println("Неверный номер.");
}Выходим из программы и закрываем ввод:
else if (cmd.equals("0")) run = false;
else System.out.println("Неизвестная команда.");
System.out.println();
}
sc.close();В итоге получилась To-Do утилита с сохранением задач в tasks.txt.
👉 Java Ready | #практика