コード例 #1
0
  /** save To save members' information into a binary file */
  public void save() {
    ObjectOutputStream oout = null;
    Member tm;
    ArrayList<String> booksBorrowed = new ArrayList<String>();
    try {
      oout = new ObjectOutputStream(new FileOutputStream("members1.dat"));
      // Loop through memberMap and process each entry
      // Structure for writing
      // __________________________________________________________
      // |String|String|String|Boolean or Double|ArrayList<String>|
      // ----------------------------------------------------------

      for (Map.Entry<String, Member> entry : memberMap.entrySet()) {
        tm = entry.getValue();
        oout.writeUTF(tm.getMemberID());
        oout.writeUTF(tm.getName());
        oout.writeUTF(tm.getPhoneNumber());
        if (tm instanceof Staff) {
          oout.writeBoolean(((Staff) tm).isBookOverdue());
        } else {
          oout.writeDouble(((Student) tm).getFinesOwing());
        }
        for (LibraryBook b : tm.getBooklist()) {
          booksBorrowed.add(b.getBookNumber());
        }
        oout.writeObject(booksBorrowed);
      }
    } catch (Exception e) {
      Log.e(e.getMessage());
    } finally {
      try {
        oout.close();
      } catch (IOException e) {
        Log.e(e.getMessage());
      }
    }
  }