答案:通过设计Task和TaskManager类实现任务增删改查及文件持久化,结合Scanner构建命令行交互界面,完成一个可本地存储的Java任务清单工具。

开发一个个人任务清单工具是学习Java基础语法、面向对象编程以及文件操作的绝佳实战项目。通过这个项目,你可以掌握类设计、集合使用、数据持久化等核心技能。下面从需求分析到代码实现,一步步带你完成一个简易但功能完整的任务清单工具。
功能需求与系统设计
一个基本的任务清单工具应具备以下功能:
添加任务:用户可以输入任务标题、描述和截止日期查看任务列表:显示所有任务,区分已完成和未完成标记任务完成:将指定任务设置为已完成状态删除任务:移除某项任务数据持久化:任务信息保存在本地文件中,程序重启后不丢失
基于这些需求,我们可以设计两个主要类:Task(任务实体)和TaskManager(任务管理器)。
Task类:定义任务结构
每个任务包含基本信息,使用私有字段封装,提供getter/setter方法。
立即学习“Java免费学习笔记(深入)”;
public class Task { private int id; private String title; private String description; private String dueDate; private boolean completed;public Task(int id, String title, String description, String dueDate) { this.id = id; this.title = title; this.description = description; this.dueDate = dueDate; this.completed = false;}// Getter 和 Setter 方法public int getId() { return id; }public String getTitle() { return title; }public boolean isCompleted() { return completed; }public void markCompleted() { this.completed = true; }@Overridepublic String toString() { return "ID:" + id + " | " + title + " | " + dueDate + " | " + (completed ? "已完成" : "未完成");}
}
TaskManager类:实现核心逻辑
该类负责任务的增删改查及文件读写。
使用ArrayList存储任务列表,ID自动递增。
百灵大模型
蚂蚁集团自研的多模态AI大模型系列
313 查看详情
import java.io.*;import java.util.*;public class TaskManager {private List tasks;private static final String FILE_NAME = "tasks.txt";private int nextId = 1;
public TaskManager() { tasks = new ArrayList(); loadFromFile();}public void addTask(String title, String description, String dueDate) { Task task = new Task(nextId++, title, description, dueDate); tasks.add(task); System.out.println("任务已添加:" + task.getTitle());}public void viewTasks() { if (tasks.isEmpty()) { System.out.println("暂无任务。"); return; } for (Task task : tasks) { System.out.println(task); }}public void markTaskAsCompleted(int id) { for (Task task : tasks) { if (task.getId() == id) { task.markCompleted(); System.out.println("任务已标记为完成:" + task.getTitle()); return; } } System.out.println("未找到ID为 " + id + " 的任务。");}public void deleteTask(int id) { tasks.removeIf(task -> task.getId() == id); System.out.println("已删除ID为 " + id + " 的任务。");}
数据持久化:保存与加载
程序退出时将任务写入文件,启动时从文件读取。
采用简单的文本格式存储,每行代表一个任务,字段用逗号分隔。
private void loadFromFile() { File file = new File(FILE_NAME); if (!file.exists()) return; try (BufferedReader br = new BufferedReader(new FileReader(file))) { String line; while ((line = br.readLine()) != null) { String[] parts = line.split(","); if (parts.length == 5) { Task task = new Task( Integer.parseInt(parts[0]), parts[1], parts[2], parts[3] ); if ("true".equals(parts[4])) { task.markCompleted(); } tasks.add(task); nextId = Math.max(nextId, task.getId() + 1); } } } catch (IOException e) { System.out.println("读取文件失败:" + e.getMessage()); }}private void saveToFile() { try (PrintWriter pw = new PrintWriter(new FileWriter(FILE_NAME))) { for (Task task : tasks) { pw.println(task.getId() + "," + task.getTitle() + "," + task.getDescription() + "," + task.getDueDate() + "," + task.isCompleted()); } } catch (IOException e) { System.out.println("保存文件失败:" + e.getMessage()); }}
在程序结束前调用saveToFile()方法即可持久化数据。
主程序入口:交互式菜单
使用Scanner接收用户输入,提供命令行菜单。
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); TaskManager manager = new TaskManager(); while (true) { System.out.println("n--- 个人任务清单 ---"); System.out.println("1. 添加任务"); System.out.println("2. 查看所有任务"); System.out.println("3. 标记任务完成"); System.out.println("4. 删除任务"); System.out.println("5. 退出"); System.out.print("请选择操作:"); int choice = scanner.nextInt(); scanner.nextLine(); // 消费换行符 switch (choice) { case 1: System.out.print("任务标题:"); String title = scanner.nextLine(); System.out.print("描述:"); String desc = scanner.nextLine(); System.out.print("截止日期(YYYY-MM-DD):"); String date = scanner.nextLine(); manager.addTask(title, desc, date); break; case 2: manager.viewTasks(); break; case 3: System.out.print("请输入要完成的任务ID:"); int id = scanner.nextInt(); manager.markTaskAsCompleted(id); break; case 4: System.out.print("请输入要删除的任务ID:"); int delId = scanner.nextInt(); manager.deleteTask(delId); break; case 5: manager.saveToFile(); System.out.println("数据已保存,程序退出。"); return; default: System.out.println("无效选择,请重试。"); } }}
}
基本上就这些。运行程序后,你就可以添加、查看、更新任务,并且数据会自动保存到本地文件中。这个项目虽小,但涵盖了Java开发中的常见模式和技巧,适合初学者巩固知识,也便于后续扩展,比如加入优先级、分类、提醒等功能。
以上就是Java里如何开发个人任务清单工具_任务清单项目实战解析的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1070588.html
微信扫一扫
支付宝扫一扫