java通过录入界面将多人的通讯录写入文件“通讯录.txt”,点击“显示”菜单项,显示通讯录。
时间: 2023-11-14 11:06:47 浏览: 90
以下是一个简单的示例代码,用于实现这个功能:
```java
import java.io.*;
import java.util.*;
public class AddressBook {
private static final String FILE_NAME = "通讯录.txt";
private Map<String, String> contacts;
public AddressBook() {
contacts = new HashMap<>();
}
public void addContact(String name, String phone) {
contacts.put(name, phone);
}
public void saveToFile() throws IOException {
try (PrintWriter writer = new PrintWriter(new FileWriter(FILE_NAME))) {
for (Map.Entry<String, String> entry : contacts.entrySet()) {
writer.println(entry.getKey() + "," + entry.getValue());
}
}
}
public void loadFromFile() throws IOException {
try (Scanner scanner = new Scanner(new FileReader(FILE_NAME))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] parts = line.split(",");
if (parts.length == 2) {
contacts.put(parts[0], parts[1]);
}
}
}
}
public void displayContacts() {
for (Map.Entry<String, String> entry : contacts.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
public static void main(String[] args) {
AddressBook book = new AddressBook();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 录入通讯录");
System.out.println("2. 显示通讯录");
System.out.println("3. 退出");
int choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
System.out.print("请输入姓名:");
String name = scanner.nextLine();
System.out.print("请输入电话号码:");
String phone = scanner.nextLine();
book.addContact(name, phone);
break;
case 2:
book.displayContacts();
break;
case 3:
try {
book.saveToFile();
} catch (IOException e) {
System.err.println("保存文件失败:" + e.getMessage());
}
return;
default:
System.out.println("无效的选项。");
}
}
}
}
```
此代码创建了一个 AddressBook 类,用于管理通讯录。录入通讯录和显示通讯录是通过控制台输入和输出实现的。通讯录数据保存在一个名为“通讯录.txt”的文本文件中,每个联系人的姓名和电话号码用逗号分隔。在程序退出时,通讯录数据将保存到文件中。
注意,此代码仅为示例,没有进行错误检查和异常处理等。在实际应用中,需要根据具体情况进行修改和完善。
阅读全文