利用Java集合类和文件类实现一个简易的通讯录程序,实现基本的增删改查
时间: 2024-10-08 12:00:55 浏览: 34
使用Java的文件操作实现一个简单的通讯录管理系统.txt
在Java中,我们可以使用`HashMap`作为基础集合来实现一个简易的通讯录程序,它允许快速地查找、插入和删除联系人。同时,我们将使用文件I/O来存取数据,方便数据持久化。以下是一个简化版的通讯录类结构:
1. 首先,定义一个`Contact`类:
```java
public class Contact {
private String id; // 可以用名字代替id,此处为了区分
private String name;
private String phoneNumber;
// 构造函数,getter和setter方法
public Contact(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
}
// 获取和设置方法省略...
}
```
2. 然后创建一个`AddressBook`类:
```java
import java.io.*;
import java.util.*;
public class AddressBook {
private Map<String, Contact> contacts = new HashMap<>();
// 增加联系人
public void addContact(Contact contact) {
contacts.put(contact.getId(), contact);
}
// 删除联系人
public void removeContact(String id) {
contacts.remove(id);
}
// 更新联系人
public void updateContact(String oldId, Contact updatedContact) {
if (contacts.containsKey(oldId)) {
contacts.put(updatedContact.getId(), updatedContact);
}
}
// 从文件加载数据
public void loadFromCSV(String filename) {
try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = br.readLine()) != null) {
String[] parts = line.split(",");
Contact contact = new Contact(parts[0], parts[1]);
addContact(contact);
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 将数据保存到文件
public void saveToCSV(String filename) {
try (PrintWriter pw = new PrintWriter(new FileWriter(filename))) {
for (Contact contact : contacts.values()) {
pw.println(contact.getId() + "," + contact.getPhoneNumber());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个`AddressBook`类包含了基本的增删改查功能,`loadFromCSV`和`saveToCSV`方法分别用于从CSV文件中读取和保存联系人数据。在主程序中,你可以设计一个简单的交互界面让用户选择操作,如增加联系人、删除联系人等。
```java
public static void main(String[] args) {
AddressBook book = new AddressBook();
book.loadFromCSV("contacts.csv"); // 假设文件存在
// ... 用户界面操作,如:
book.addContact(new Contact("Alice", "+123456789"));
book.saveToCSV("contacts.csv");
}
```
阅读全文