歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java實現的簡單電話號碼儲存

Java實現的簡單電話號碼儲存

日期:2017/3/1 10:47:43   编辑:Linux編程

Java實現的簡單電話號碼儲存:

  1. package com.sinosuperman.example;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.StringTokenizer;
  7. import java.util.TreeMap;
  8. import javax.swing.JOptionPane;
  9. public class PhoneNoteBook {
  10. private final File phoneNoteBookFile;
  11. private TreeMap<String, String> phoneNoteBookMap;
  12. public PhoneNoteBook(String fileName) throws IOException {
  13. phoneNoteBookMap = new TreeMap<String, String>();
  14. phoneNoteBookFile = new File(fileName);
  15. loadAllRecords();
  16. }
  17. private void loadAllRecords() throws IOException {
  18. BufferedReader reader = new BufferedReader(new FileReader(phoneNoteBookFile));
  19. String line = reader.readLine();
  20. while (line != null) {
  21. StringTokenizer str = new StringTokenizer(line, "\t");
  22. String name = str.nextToken();
  23. String phone = str.nextToken();
  24. phoneNoteBookMap.put(name, phone);
  25. line = reader.readLine();
  26. }
  27. reader.close();
  28. }
  29. private void addRecord() {
  30. String name = JOptionPane.showInputDialog("Please enter the name:\n");
  31. String phone = JOptionPane.showInputDialog("Please enter the phone:\n");
  32. if (JOptionPane.showConfirmDialog(null, "Are you sure?") == JOptionPane.YES_OPTION) {
  33. phoneNoteBookMap.put(name, phone);
  34. } else {
  35. JOptionPane.showMessageDialog(null, "Operation has been canceled");
  36. }
  37. }
  38. private void updateRecord() {
  39. String name = JOptionPane.showInputDialog("Please enter the name:\n");
  40. String phone = JOptionPane.showInputDialog("Please enter his/her new phone name:\n");
  41. if (!phoneNoteBookMap.containsKey(name)) {
  42. if (JOptionPane.showConfirmDialog(null, "This name does not exist. Do you want to create a new one?") == JOptionPane.YES_OPTION) {
  43. phoneNoteBookMap.put(name, phone);
  44. } else {
  45. JOptionPane.showMessageDialog(null, "Operation has been canceled");
  46. }
  47. } if (JOptionPane.showConfirmDialog(null, "Are you sure to modify his/her phone number?") == JOptionPane.YES_OPTION) {
  48. phoneNoteBookMap.put(name, phone);
  49. } else {
  50. JOptionPane.showMessageDialog(null, "Operation has been canceled");
  51. }
  52. }
  53. private void searchRecord() {
  54. String name = JOptionPane.showInputDialog("Please the name for searching");
  55. if (phoneNoteBookMap.containsKey(name)) {
  56. JOptionPane.showMessageDialog(null, phoneNoteBookMap.get(name));
  57. } else {
  58. JOptionPane.showMessageDialog(null, "The name you are searching does not exists.");
  59. }
  60. }
  61. private void removeRecord() {
  62. String name = JOptionPane.showInputDialog("Please enter the name:\n");
  63. if (!phoneNoteBookMap.containsKey(name)) {
  64. JOptionPane.showConfirmDialog(null, "This name does not exist. So you don't need to remove it.");
  65. } else if (JOptionPane.showConfirmDialog(null, "Are you sure to remove his/her record?") == JOptionPane.YES_OPTION) {
  66. phoneNoteBookMap.remove(name);
  67. } else {
  68. JOptionPane.showMessageDialog(null, "Operation has been canceled");
  69. }
  70. }
  71. public void display() {
  72. String message = "Please select an operation:\n" +
  73. "Enter \"1\" to add a new record;\n" +
  74. "Enter \"2\" to update a existing record;\n" +
  75. "Enter \"3\" to find a phone number;\n" +
  76. "Enter \"4\" to remove a existing record.\n";
  77. int choice = 0;
  78. try {
  79. choice = Integer.parseInt(JOptionPane.showInputDialog(message));
  80. switch (choice) {
  81. case 1:
  82. addRecord();
  83. break;
  84. case 2:
  85. updateRecord();
  86. break;
  87. case 3:
  88. searchRecord();
  89. break;
  90. case 4:
  91. removeRecord();
  92. break;
  93. default:
  94. }
  95. } catch (NumberFormatException e) {
  96. }
  97. if (JOptionPane.showConfirmDialog(null, "Would you want to continue?") != JOptionPane.YES_OPTION) {
  98. JOptionPane.showMessageDialog(null, "Thank you.");
  99. } else {
  100. display();
  101. }
  102. }
  103. }

測試驅動程序:

  1. package com.sinosuperman.driver;
  2. import java.io.IOException;
  3. import com.sinosuperman.example.PhoneNoteBook;
  4. public class Driver {
  5. public static void main(String[] args) throws IOException {
  6. PhoneNoteBook phoneNoteBook = new PhoneNoteBook("PhoneNoteBook.txt");
  7. phoneNoteBook.display();
  8. }
  9. }

Copyright © Linux教程網 All Rights Reserved