完全可行,适合初学者练手;用news.txt以“id|标题|内容|时间”格式存储,通过FileWriter追加、BufferedReader解析、List过滤实现增删读功能,并支持控制台菜单交互。

用Java做简易新闻发布系统,如果不用数据库,纯靠文本文件存储,是完全可行的——尤其适合初学者练手、课程小作业或快速验证逻辑。关键不是“多高级”,而是把新闻的增、删、读、格式化展示这几个动作跑通,并保证内容不丢失。
核心思路:用文件代替数据库
不依赖MySQL或任何外部服务,所有新闻数据以结构化文本形式(如每条新闻占一段,字段用分隔符隔开)存入red">news.txt。每次添加新闻就追加一行;读取时按行解析;删除则需重写整个文件(跳过目标条目)。
推荐字段顺序:id|标题|内容|发布时间,例如:
1|银川举办青少年无人机大赛|12月20日,511名科创少年参与FTF赛项…|2025-12-20
立即学习“Java免费学习笔记(深入)”;
基础功能实现要点
-
新闻录入:用Scanner接收标题、内容、时间,自动生成递增id,拼成一行字符串后追加到news.txt(使用FileWriter配合
true参数) -
新闻列表展示:用BufferedReader逐行读取文件,按
|分割,提取标题和时间,在控制台打印编号+标题+简略时间 - 新闻详情查看:输入序号后,重新遍历文件,找到对应id的那一行,完整显示标题、内容、时间
- 删除某条新闻:读取全部行存入List,过滤掉目标id,再用FileWriter清空原文件并逐行写入剩余内容
提升可用性的细节建议
- 标题和内容中若含
|,需提前替换为|(全角竖线)或转义,避免解析错位 - 发布时间建议用
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))自动生成,更真实 - 可增加简单菜单循环(while + switch),支持“1.发布 2.查看列表 3.查看详情 4.删除 0.退出”
- 首次运行时自动创建news.txt,避免FileNotFoundException
与数据库方案的本质区别
文本方案没有SQL查询、没有事务、不支持并发写入,但胜在零配置、秒级启动、一目了然。它帮你聚焦在业务逻辑流本身:用户怎么输 → 程序怎么存 → 数据怎么取 → 页面(控制台)怎么呈现。等这根链路理顺了,再迁移到MySQL或Spring Boot,只是换了个“存”的地方,其余结构几乎不变。










