博客
关于我
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/

    你可能感兴趣的文章
    NSOperation基本操作
    查看>>
    NSRange 范围
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NSUserdefault读书笔记
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    ntpdate 通过外网同步时间
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP配置
    查看>>
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>