答案:程序实现了一个简易备忘录,支持添加、查看、删除和保存功能。通过Memo类存储标题、内容和时间,MemoApp类处理用户交互与文件操作,启动时加载memos.txt中的数据,支持持久化存储,适合Java初学者学习基础语法与IO操作。

开发一个简易的备忘录小程序,可以用Java实现命令行版本,支持添加、查看、删除和保存备忘录内容。整个程序不需要图形界面,适合初学者理解Java基础语法和文件操作。
1. 功能设计
这个备忘录程序包含以下基本功能:
- 添加备忘录:输入标题和内容,保存为一条记录
- 查看所有备忘录:列出所有已保存的条目
- 删除指定备忘录:通过编号删除某条记录
- 数据持久化:使用文本文件存储数据,重启程序后仍可读取
2. 项目结构与类设计
创建两个主要类:
- Memo.java:表示一条备忘录,包含标题、内容和时间
- MemoApp.java:主程序,负责用户交互和文件读写
public class Memo {
private String title;
private String content;
private String timestamp;
public Memo(String title, String content) {
this.title = title;
this.content = content;
this.timestamp = java.time.LocalDateTime.now().toString();
}
// Getter 方法
public String getTitle() { return title; }
public String getContent() { return content; }
public String getTimestamp() { return timestamp; }
@Override
public String toString() {
return "标题: " + title + "\n内容: " + content + "\n时间: " + timestamp + "\n" + "-".repeat(30);
}
}
MemoApp.java 核心逻辑:
import java.io.*;
import java.util.*;
public class MemoApp {
private static final String FILE_NAME = "memos.txt";
private List memos = new ArrayList<>();
private Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
new MemoApp().run();
}
private void run() {
loadFromFile(); // 启动时加载数据
while (true) {
showMenu();
int choice = getIntInput();
switch (choice) {
case 1 -> addMemo();
case 2 -> viewMemos();
case 3 -> deleteMemo();
case 4 -> saveAndExit();
default -> System.out.println("无效选择,请重试");
}
}
}
private void showMenu() {
System.out.println("\n=== 简易备忘录 ===");
System.out.println("1. 添加备忘录");
System.out.println("2. 查看所有备忘录");
System.out.println("3. 删除备忘录");
System.out.println("4. 退出并保存");
System.out.print("请选择操作:");
}
private void addMemo() {
System.out.print("请输入标题:");
String title = scanner.nextLine();
System.out.print("请输入内容:");
String content = scanner.nextLine();
memos.add(new Memo(title, content));
System.out.println("备忘录已添加!");
}
private void viewMemos() {
if (memos.isEmpty()) {
System.out.println("暂无备忘录");
return;
}
for (int i = 0; i < memos.size(); i++) {
System.out.println("编号 " + i + ":\n" + memos.get(i));
}
}
private void deleteMemo() {
viewMemos();
if (memos.isEmpty()) return;
System.out.print("请输入要删除的编号:");
int index = getIntInput();
if (index >= 0 && index < memos.size()) {
memos.remove(index);
System.out.println("已删除!");
} else {
System.out.println("编号无效");
}
}
private int getIntInput() {
while (!scanner.hasNextInt()) {
scanner.next();
System.out.print("请输入数字:");
}
int value = scanner.nextInt();
scanner.nextLine(); // 消费换行符
return value;
}
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) {
if (line.startsWith("标题:")) {
String title = line.substring(3);
String content = br.readLine().substring(3);
String time = br.readLine().substring(3);
Memo memo = new Memo("", "");
// 反射或手动设置私有字段(简化版可用构造后修改)
// 实际项目建议用JSON或序列化
System.out.println("加载:" + title);
}
}
} catch (IOException e) {
System.out.println("读取文件失败:" + e.getMessage());
}
}
private void saveAndExit() {
try (PrintWriter pw = new PrintWriter(new FileWriter(FILE_NAME))) {
for (Memo memo : memos) {
pw.println("标题: " + memo.getTitle());
pw.println("内容: " + memo.getContent());
pw.println("时间: " + memo.getTimestamp());
pw.println("------------------------");
}
System.out.println("数据已保存,程序退出。");
} catch (IOException e) {
System.out.println("保存失败:" + e.getMessage());
}
System.exit(0);
}
}
3. 运行与测试
编译并运行程序:
沙之丘企业网站程序是一个以asp.net(C#) 4.0 +access进行开发的企业网站源码。主要功能:1、产品、设备、新闻系统2、留言信息直接发邮件到相关部门3、所有链接都以一级目录显示更好的权重4、其他信息扩展,可以增加如:人事招聘,公司介绍,地图,联系我们等5、带有商品和设备的搜索功能6、模板动态化方便扩展模板7、简体繁体选择显示运行环境:windows 2003或者更高windows服务
立即学习“Java免费学习笔记(深入)”;
- 将两个 Java 文件放在同一目录
- 使用命令:
javac *.java编译 - 运行:
java MemoApp - 程序会在同目录生成 memos.txt 保存数据
4. 扩展建议
如果想进一步提升功能,可以考虑:
- 使用 JSON 格式存储,配合 Jackson 或 Gson 库
- 增加搜索功能,按标题关键字查找
- 改为图形界面(Swing 或 JavaFX)
- 添加修改备忘录功能
- 支持分类或标签管理









