view plainprint?
package com.sinosuperman.example;
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.StringTokenizer;import java.util.TreeMap;
import javax.swing.JOptionPane;
public class PhoneNoteBook {
private final File phoneNoteBookFile;
private TreeMap<String, String> phoneNoteBookMap;
public PhoneNoteBook(String fileName) throws IOException { phoneNoteBookMap = new TreeMap<String, String>();phoneNoteBookFile = new File(fileName);loadAllRecords();}
private void loadAllRecords() throws IOException { BufferedReader reader = new BufferedReader(new FileReader(phoneNoteBookFile));String line = reader.readLine();while (line != null) { StringTokenizer str = new StringTokenizer(line, " ");String name = str.nextToken();String phone = str.nextToken();phoneNoteBookMap.put(name, phone);line = reader.readLine();} reader.close();}
private void addRecord() { String name = JOptionPane.showInputDialog("Please enter the name: ");String phone = JOptionPane.showInputDialog("Please enter the phone: ");if (JOptionPane.showConfirmDialog(null, "Are you sure?") == JOptionPane.YES_OPTION) { phoneNoteBookMap.put(name, phone);} else { JOptionPane.showMessageDialog(null, "Operation has been canceled");}
private void updateRecord() { String name = JOptionPane.showInputDialog("Please enter the name: ");String phone = JOptionPane.showInputDialog("Please enter his/her new phone name: ");if (!phoneNoteBookMap.containsKey(name)) { if (JOptionPane.showConfirmDialog(null, "This name does not exist. Do you want to create a new one?") == JOptionPane.YES_OPTION) { phoneNoteBookMap.put(name, phone);} else { JOptionPane.showMessageDialog(null, "Operation has been canceled");} } if (JOptionPane.showConfirmDialog(null, "Are you sure to modify his/her phone number?") == JOptionPane.YES_OPTION) { phoneNoteBookMap.put(name, phone);} else { JOptionPane.showMessageDialog(null, "Operation has been canceled");}
private void searchRecord() { String name = JOptionPane.showInputDialog("Please the name for searching");if (phoneNoteBookMap.containsKey(name)) { JOptionPane.showMessageDialog(null, phoneNoteBookMap.get(name));} else { JOptionPane.showMessageDialog(null, "The name you are searching does not exists.");}
private void removeRecord() { String name = JOptionPane.showInputDialog("Please enter the name: ");if (!phoneNoteBookMap.containsKey(name)) { JOptionPane.showConfirmDialog(null, "This name does not exist. So you dont need to remove it.");} else if (JOptionPane.showConfirmDialog(null, "Are you sure to remove his/her record?") == JOptionPane.YES_OPTION) { phoneNoteBookMap.remove(name);} else { JOptionPane.showMessageDialog(null, "Operation has been canceled");}
public void display() { String message = "Please select an operation: " + "Enter "1" to add a new record; " + "Enter "2" to update a existing record; " + "Enter "3" to find a phone number; " + "Enter "4" to remove a existing record. ";
int choice = 0;try { choice = Integer.parseInt(JOptionPane.showInputDialog(message));switch (choice) { case 1:addRecord();break;case 2:updateRecord();break;case 3:searchRecord();break;case 4:removeRecord();break;default:} } catch (NumberFormatException e) { }
if (JOptionPane.showConfirmDialog(null, "Would you want to continue?") != JOptionPane.YES_OPTION) { JOptionPane.showMessageDialog(null, "Thank you.");} else { display();}
测试驱动程序:view plainprint?
package com.sinosuperman.driver;
import java.io.IOException;
import com.sinosuperman.example.PhoneNoteBook;
public class Driver { public static void main(String[] args) throws IOException { PhoneNoteBook phoneNoteBook = new PhoneNoteBook("PhoneNoteBook.txt");phoneNoteBook.display();}