使用Map映射写通信录 并使用Properties持久化。 软件功能:实现一个软件的地址本,地址本中保存多个联系人的信息(名字,电话,电子邮 件,住址),可以在地址本中增加一个联系人,通过名字删

通信录 (使用Map映射写,并使用Properties 持久化完成)

软件功能:实现一个软件的地址本,地址本中保存多个联系人的信息(名字,电话,电子邮
件,住址),可以在地址本中增加一个联系人,通过名字删除联系人,通过名字查找联系人
实现步骤:本软件需要三个类
1)联系人信息类
属性:名字,电话,电子邮件,住址
方法:设置名字,设置地址,取得名字,取得地址 ,设置邮件,取得邮件,设置电话,取得电话
2)地址本类
属性:用来保存联系人信息的 集合
方法:增加联系人信息,通过名字删除联系人信息,通过名字查找联系人信息
3)主函数 类
循环提示 1)展示地址2)增加地址 并持久化3)删除地址 4)查找地址 0)退出系统


import java.io.IOException;
import java.util.Scanner;

/*
 * 3)主函数 类
循环提示 
1)展示地址
2)增加地址 
3)删除地址 
4)查找地址 
0)退出系统
 */
public class ContactTest {
	public static void main(String[] args) throws IOException {
		AddressBook addressBook = new AddressBook();
		Scanner scanner = new Scanner(System.in);
		while (true) {
			System.out.println("1)展示地址2)增加地址并持久化 3)删除地址 4)查找地址 0)退出系统");
			int t = scanner.nextInt();
			switch (t) {
			case 1:
				System.out.println("展示信息");
				System.out.println(addressBook.show());
				break;
			case 2:
				System.out.println("添加信息并持久化");
				System.out.println("请输入姓名");
				String insertName = scanner.next();
				System.out.println("请输入电话");
				String insertPhone = scanner.next();
				System.out.println("请输入邮箱");
				String insertEmail = scanner.next();
				System.out.println("请输入地址");
				String insertAddress = scanner.next();
				ContactInfo contactInfo = new ContactInfo(insertPhone, insertEmail, insertAddress);
				addressBook.insert(insertName, contactInfo);
				System.out.println("持久化文件" + addressBook.showProperties());
				break;
			case 3:
				System.out.println("请输入要删除的姓名");
				String nameDelect = scanner.next();
				addressBook.delect(nameDelect);
				break;

			case 4:
				System.out.println("请输入要查找的名字");
				String nameSelect = scanner.next();
				System.out.println(nameSelect + "的信息" + addressBook.select(nameSelect));
				break;
			case 0:
				System.out.println("退出");
				System.exit(0);
				scanner.close();
			}
		}
	}
}

/*联系人信息类 
属性:名字,电话,电子邮件,住址 
方法:设置名字,设置地址,取得名字,取得地址 ,设置邮件,取得邮件,设置电话,取得电话*/
public class ContactInfo {
	private String name;
	private String phone;
	private String email;
	private String address;

	public ContactInfo() {
		super();
	}

	public ContactInfo(String phone, String email, String address) {
		super();
		this.phone = phone;
		this.email = email;
		this.address = address;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	@Override
	public String toString() {
		return " [phone=" + phone + ", email=" + email + ", address=" + address + "]";
	}

}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

/*
 * 2)地址本类 
属性:用来保存联系人信息的 集合
方法:增加联系人信息,通过名字删除联系人信息,通过名字查找联系人信息 
 */
public class AddressBook {
	Map<String, ContactInfo> map = new HashMap<String, ContactInfo>();
	ContactInfo contactInfo = new ContactInfo();

	public Map<String, ContactInfo> show() throws IOException {
		return map;
	}

	public Map<String, ContactInfo> insert(String string, ContactInfo contactInfo) throws IOException {
		// 持久化,生成文件
		outProperties(string, contactInfo);
		// 放进map映射内
		map.put(string, contactInfo);
		Set<String> set = map.keySet();
		for (String name : set) {
			if (string.equals(name)) {
				System.out.println("添加成功");
			}

		}
		return map;
	}

	public Map<String, ContactInfo> delect(String string) {
		map.remove(string);
		Set<String> set = map.keySet();
		for (String name : set) {
			if (!string.equals(name)) {
				System.out.println("删除成功");
			}
		}
		return map;
	}

	public ContactInfo select(String string) {
		ContactInfo contact = map.get(string);
		return contact;
	}

	Properties properties = new Properties();

	public Properties outProperties(String string, ContactInfo contactInfo) throws IOException {
		// 使用properties生成文件持久化
		properties.setProperty(string, contactInfo.toString());
		// 定义一个输出流
		OutputStream outputStream = new FileOutputStream(new File("F:/0330作业"));
		// 通过store方法将properties文件写出到磁盘
		properties.store(outputStream, "生成文件");
		return properties;
	}

	public Properties showProperties() throws IOException {
		// 读回文件
		// 定义一个空的properties
		InputStream inputStream = new FileInputStream(new File("F:/0330作业"));
		// load方法从输入流中读取属性列表
		properties.load(inputStream);
		return properties;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值