电话薄Java实现小程序

本文介绍了一个使用Java编写的电话薄小程序,该程序利用Properties类的store()和load()方法,能够存储和查询联系人信息,并将数据保存到磁盘。用户可以通过输入名字来查找对应的电话号码,输入'quit'可结束程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个Java实现的电话薄小程序,该电话薄实现简单的存储联系人,会将联系人保存到磁盘上。查询联系人,输入名字会显示出他的电话号码。

该程序使用了Properties类的两个方法store() 和 load(),使得这个功能完备的电话薄程序只需很简单的代码就实现了。

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;

/**
 * 
 */

/**
 * @author firethinks
 * 
 */
public class Phonebook {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		/**
		 * 创建一个 Properties实例,Properties是Hashtable的子类。
		 */
		Properties ht = new Properties();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String name, number;
		FileInputStream fin = null;
		boolean changed = false;

		try {
			fin = new FileInputStream("phonebook.dat");
		} catch (FileNotFoundException e) {
			// 忽略文件错误
		}
		/**
		 * 如果电话薄存在,直接读取文件
		 */
		try {
			if (null != fin) {
				ht.load(fin);
				ht.clone();
			}
		} catch (IOException e) {
			System.out.println("读取电话薄失败!");
		}
		
		//添加新的联系人
		do {
			System.out.println("请输入联系人名字:(输入'quit'停止)");
			name = br.readLine();
			if (name.equalsIgnoreCase("quit")) {
				continue;
			}
			
			System.out.println("请输入电话号码:");
			number = br.readLine();
			
			ht.put(name, number);
			changed = true;
		} while (!name.equalsIgnoreCase("quit"));
		
		//如果电话薄有改变就储存一下
		if (changed) {
			FileOutputStream fout = new FileOutputStream("phonebook.dat");
			
			ht.store(fout, "电话薄");
			fout.close();
		}
		
		//查询电话联系人
		do {
			System.out.println("请输入要查询人名字:(输入'quit'停止)");
			name = br.readLine();
			if(name.equalsIgnoreCase("quit")){
				continue;
			}
			
			number = (String)ht.get(name);
			System.out.println(number);
		} while (!name.equalsIgnoreCase("quit"));
		System.out.println("谢谢使用o_o!");
	}

}
以下是程序的一个输出示例:

请输入联系人名字:(输入'quit'停止)
quit
请输入要查询人名字:(输入'quit'停止)
firethinks
12345698785
请输入要查询人名字:(输入'quit'停止)
quit
谢谢使用o_o!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值