博客
关于我
java简易通讯录,使用序列化实现,存入指定文件
阅读量:98 次
发布时间:2019-02-26

本文共 947 字,大约阅读时间需要 3 分钟。

Java程序实现通讯录功能

一、数据序列化存储

在本程序中,选择使用ArrayList来存储学生对象,这是一种常见的选择,因为它支持动态大小,元素可以随时添加、删除。通过ObjectOutputStreamObjectInputStream实现对象的序列化与反序列化功能,将程序运行中的数据存储到文本文件中。

二、文件操作机制

在主程序中,首先检查目标文件是否存在:

  • 如果文件不存在,则创建新文件。
  • 如果文件已存在,则使用ObjectInputStream反序列化读取已存储的数据,填充到ArrayList中。

随后进入主循环,用户可以通过菜单操作进行以下功能:

  • 添加新学生信息:读取输入数据,创建新学生对象并添加到ArrayList中,然后序列化写入文件。
  • 删除学生信息:通过输入姓名查找目标学生并删除。
  • 修改学生信息:通过输入姓名找到目标学生,逐一更新其相关属性。
  • 查找学生信息:用户可以选择通过姓名或地址进行查找。
  • 三、代码实现细节

    • 文件路径定义:使用静态常量Files定义文件路径,确保程序能够正确读写文件。
    • 输入流处理:使用Scanner读取用户输入,实现用户交互功能。
    • 异常处理:在文件操作和输入流处理中添加异常捕获,确保程序健壮性。

    四、优化与注意事项

    • 读写机制优化:在添加、删除、修改操作中,先通过ArrayList操作数据集合,再进行序列化写入文件,确保数据一致性。
    • 性能优化:在关闭流时使用try...finally结构,确保资源能被及时释放,避免资源泄漏。
    • 用户体验:通过菜单提示和输入提示信息,确保用户操作流程清晰,减少操作失误的几率。

    五、技术亮点

    • 对象序列化:通过Java的Serializable接口实现对象的序列化存储和读取,确保程序数据能够被准确恢复。
    • 文件操作:使用FileInputStreamFileOutputStream实现文件的读写操作,确保程序能够正确处理文件路径和权限问题。
    • 集合操作:使用ArrayList存储学生数据,支持动态增删改查,操作简便高效。

    六、扩展性分析

    该程序采用模块化设计,各功能模块独立且易于扩展。未来可以考虑增加更多的查询条件(如电话号码、邮箱地址等),或者实现数据的备份与恢复功能,进一步提升程序的实用性和可靠性。

    转载地址:http://bheu.baihongyu.com/

    你可能感兴趣的文章
    mysql 编译安装 window篇
    查看>>
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>
    Mysql 表分区
    查看>>
    mysql 表的操作
    查看>>
    mysql 视图,视图更新删除
    查看>>
    MySQL 触发器
    查看>>
    mysql 让所有IP访问数据库
    查看>>
    mysql 记录的增删改查
    查看>>
    MySQL 设置数据库的隔离级别
    查看>>
    MySQL 证明为什么用limit时,offset很大会影响性能
    查看>>
    Mysql 语句操作索引SQL语句
    查看>>
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    查看>>
    MySQL 调优/优化的 101 个建议!
    查看>>
    mysql 转义字符用法_MySql 转义字符的使用说明
    查看>>
    mysql 输入密码秒退
    查看>>