Mega Code Archive

 
Categories / Java / J2ME
 

Simple Sort for RMS

/*-------------------------------------------------- * SimpleSort.java * * No GUI interface, all output is to the console * * Example from the book:     Core J2ME Technology * Copyright John W. Muchow   http://www.CoreJ2ME.com * You may use/modify for any non-commercial purpose *-------------------------------------------------*/ import java.io.*; import javax.microedition.midlet.*; import javax.microedition.rms.*; public class SimpleSort extends MIDlet {   private RecordStore rs = null;   static final String REC_STORE = "db_1";   public SimpleSort()   {     openRecStore();   // Create the record store          // Write a few records     writeRecord("Sand Wedge");     writeRecord("One Wood");     writeRecord("Putter");         writeRecord("Five Iron");             // Read back with enumerator, sorting the results     readRecords();          closeRecStore();  // Close record store     deleteRecStore(); // Remove the record store   }   public void destroyApp( boolean unconditional )   {   }   public void startApp()   {     // There is no user interface, go ahead and shutdown     destroyApp(false);     notifyDestroyed();   }   public void pauseApp()   {   }   public void openRecStore()   {     try     {       // The second parameter indicates that the record store       // should be created if it does not exist       rs = RecordStore.openRecordStore(REC_STORE, true );     }     catch (Exception e)     {       db(e.toString());     }   }          public void closeRecStore()   {     try     {       rs.closeRecordStore();     }     catch (Exception e)     {       db(e.toString());     }   }   public void deleteRecStore()   {     if (RecordStore.listRecordStores() != null)     {       try       {         RecordStore.deleteRecordStore(REC_STORE);       }       catch (Exception e)       {         db(e.toString());       }     }         }   public void writeRecord(String str)   {     byte[] rec = str.getBytes();     try     {       rs.addRecord(rec, 0, rec.length);     }     catch (Exception e)     {       db(e.toString());     }   }   public void readRecords()   {     try     {       if (rs.getNumRecords() > 0)       {         Comparator comp = new Comparator();                  RecordEnumeration re = rs.enumerateRecords(null, comp, false);         while (re.hasNextElement())         {           // Calls String constructor that takes an array of bytes as input           String str = new String(re.nextRecord());           System.out.println(str);           System.out.println("------------------------------");                                      }       }     }     catch (Exception e)     {       db(e.toString());     }   }   /*--------------------------------------------------   * Simple message to console for debug/errors   * When used with Exceptions we should handle the    * error in a more appropriate manner.   *-------------------------------------------------*/   private void db(String str)   {     System.err.println("Msg: " + str);   } } /*-------------------------------------------------- * Compares two records to determine sort order *-------------------------------------------------*/ class Comparator implements RecordComparator {   public int compare(byte[] rec1, byte[] rec2)   {     String str1 = new String(rec1), str2 = new String(rec2);          int result = str1.compareTo(str2);     if (result == 0)       return RecordComparator.EQUIVALENT;     else if (result < 0)       return RecordComparator.PRECEDES;     else       return RecordComparator.FOLLOWS;             } }