Java实现简单通讯录管理系统:文件操作与数据持久化

0 下载量 113 浏览量 更新于2024-08-03 收藏 3KB TXT 举报
本篇文章详细介绍了如何使用Java实现一个简单的通讯录管理系统,主要包括以下几个关键知识点: 1. **Contact类设计**: Contact类是通讯录系统的基础,它定义了两个属性:`name`(姓名)和 `phoneNumber`(电话号码)。类中包含一个构造函数,接受姓名和电话号码作为参数,用于创建新的Contact对象。 2. **AddressBook类实现**: AddressBook类是整个系统的中心,负责管理通讯录。它维护一个私有变量`contacts`,类型为`List<Contact>`,用于存储所有的联系人。类的实例化时需要一个文件名参数,这个文件名用于指定通讯录数据的存储位置。 - **构造函数**: 在构造函数中,除了接收文件名外,还调用了`loadContactsFromFile()`方法,尝试从指定的文件中加载联系人数据。如果读取过程中发生IOException或ClassNotFoundException异常,会记录错误并调用`saveContactsToFile()`进行数据保存。 - **loadContactsFromFile()方法**: 这个方法使用`FileInputStream`和`ObjectInputStream`进行文件读取。它尝试从文件中恢复`List<Contact>`对象,并将其赋值给`contacts`。如果读取过程不成功,会执行错误处理并保存数据到文件。 - **saveContactsToFile()方法**: 该方法用于将当前的`contacts`列表写入文件。它创建`FileOutputStream`和`ObjectOutputStream`,尝试将`contacts`序列化为对象并写入文件。如果写入过程中出现IOException,同样进行错误处理。 - **addContact()方法**: 该方法被用来向通讯录中添加新的Contact对象。在添加后,由于通讯录数据可能已经改变,所以会自动调用`saveContactsToFile()`确保数据的持久化。 3. **文件操作与异常处理**: 文档强调了在处理文件操作时,如读取和写入,要使用异常处理机制,包括捕获并处理`IOException`和`ClassNotFoundException`,以确保程序的健壮性。 通过这篇文章,读者可以了解到如何在Java中使用文件操作实现一个基本的、具有数据持久性的通讯录管理系统,包括对象序列化和反序列化技术的应用。这对于理解和实践Java文件IO以及面向对象编程概念非常有帮助。
2012-10-27 上传
实现了以下要求说明的功能: 1.要求使用GUI,采用 Swing 技术数据存储采用文件系统(可以是文本 文件、xml 文件、vCard 文件或其他自定义格式文件,但不能是 Excel 文件)。不 使用数据库。 2. 通讯录中每个项目包括: ( 1)基本信息:姓名、手机号码、电子邮箱、生日、所属组、备注、像片。 ( 2)工作单位:国家、省份、城市、地址、工作单位、所属部门、职位、 邮编、电话、传真 ( 3)网络信息:个人主页、即时通信工具及号码、备用邮箱 ( 4)家庭资料:国家、省份、城市、地址、邮编、电话 3 .通讯录数据的录入功能:输入并存储新的通讯录数据,输入时如果有同 名或同电话号码时,应该给出提示。 4 .通讯录数据的查询功能: ( 1)默认列出所有条目。 ( 2)模糊查询,可以按:姓名、电话号码、手机、姓名的汉语拼音的声母 或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。 如:输入“张”,列出所有名字中有“张”的条目;输入“ 2645”列出电话中有 该 4个数字的所有条目;输入“xl ”,列出声母为该 2 个字母的所有条目 ( 3)指定分组后,列出某分组的所有条目 说明:查询结果如果有多个条目,应按照姓名排序,并使用姓或姓的第一 个汉语拼音的字母分类。 5 .删除和修改功能:查询到一个条目后,可以删除该条目或修改条目内容。 6 .通信录内容的导入和导出功能。要求能够以CSV 格式和 vCard 格式导入 和导出通讯录的全部内容。并能够与主流手机或其他通讯录软件交换数据。 7 .通讯录显示设置,可以设置在显示查询结果时,一个条目可以显示或不 显示哪些内容。 注意:本系统实现了读取和保存csv文件,同时csv文件中只保存了图片的路径。