TGViewer
Java Ready | Программирование Java Ready | Программирование @java_ready · 9.26K subscribers
Post #1607 2.25K
Система учёта задач!

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 | #практика
  • ❤ 5
  • 👍 5
  • 🔥 4
More from @java_ready
  1. Oct 9, 2026photo post
  2. Oct 8, 2026Почему String.format может заменить точку на запятую? Представим, что программа сохраняет…
  3. Oct 7, 2026Почему split(".") в Java не делит строку по точке? На первый взгляд кажется, что достаточн…
  4. Oct 6, 2026Безопасная настройка retry для всей системы! В статье Java-разработчик делится опытом внед…
  5. Oct 5, 2026Почему после Stream.toList() нельзя добавить элемент? При работе со Stream часто нужно соб…
  6. Oct 5, 2026Находим три самых популярных товара! Есть поток покупок с повторяющимися названиями. Постр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →