这是一个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!