using System; using System.IO; struct Record { public string name; public UInt16 age; public string phone; public string address; };//通讯录的记录格式 class PhoneBook { FileStream f_srm; string s_filename; Record m_record; public PhoneBook(string filename) { s_filename=filename; } public int Open() { //显示初始化界面 Console.WriteLine("1:List Record"); Console.WriteLine("2:Add New Record"); Console.WriteLine("3:Erase Record"); Console.WriteLine("0:Exit"); Console.WriteLine("Please input the number you chose:"); int i=Convert.ToInt32(Console.ReadLine()); return i; } public void AddNew() { //向通讯录中添加记录 try { f_srm=new FileStream(s_filename,FileMode.OpenOrCreate); } catch { Console.WriteLine("PhoneBook Error!"); return; } BinaryWriter pw=new BinaryWriter(f_srm); pw.Seek(0,SeekOrigin.End); string s_temp; Console.Write("Name:"); m_record.name=Console.ReadLine(); pw.Write(m_record.name); reenter: Console.Write("Age:"); s_temp=Console.ReadLine(); try { m_record.age=Convert.ToUInt16(s_temp); } catch { Console.WriteLine("The format of age is error,please ReEnter"); goto reenter; } pw.Write(m_record.age); Console.Write("Phone Number:"); m_record.phone=Console.ReadLine(); pw.Write(m_record.phone); Console.Write("Address:"); m_record.address=Console.ReadLine(); pw.Write(m_record.address); Console.WriteLine("Add Sucessfull"); f_srm.Close(); } public void List() { //浏览所有记录 try { f_srm=new FileStream(s_filename,FileMode.Open); } catch { Console.WriteLine("PhoneBook Error!"); return; } BinaryReader pr=new BinaryReader(f_srm); Console.WriteLine("Name Age Phone Number Address"); Console.WriteLine("************************************************"); while(true) { if(f_srm.Length==0)//判断文件是否为空 { Console.WriteLine("The phonebook is empty!"); break; } try { m_record.name=pr.ReadString(); m_record.age=pr.ReadUInt16(); m_record.phone=pr.ReadString(); m_record.address=pr.ReadString(); } catch { return; } Console.WriteLine("{0,-9}{1,-6}{2,-18}{3}",m_record.name,m_record.age,m_record.phone,m_record.address); if(f_srm.Length==f_srm.Position)//如果已经读到文件的末尾,则跳出循环 { break; } } Console.WriteLine("**************************************************"); f_srm.Close(); } public void Erase() { //清空所有记录 try { //FileMode.Create指定操作系统应创建新文件。如果文件已存在,它将被改写。 f_srm=new FileStream(s_filename,FileMode.Create);//对现有的phonebook.txt文件进行修改 } catch { Console.WriteLine("PhoneBook Error!"); return; } f_srm.Close(); Console.WriteLine("Now the book is empty!"); } } class Test { public static void Main() { //注意,先要创建指定的目录 PhoneBook pbook=new PhoneBook("f://c#//file//phonebook.txt"); while(true) { int i=pbook.Open();//初始化,选择功能 switch(i) { case 1://列出电话本里的信息 pbook.List(); break; case 2://添加新记录 pbook.AddNew(); break; case 3://删除电话本里所有的记录 pbook.Erase(); break; } if(i==0)//如果选择的是0,退出,避免死循环 { break; } } } } 以上示例,是一个简单的通讯录的操作,包括添加、显示和删除功能。