Mega Code Archive

 
Categories / Java by API / Javax Microedition Rms
 

RecordEnumeration

import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.midlet.MIDlet; import javax.microedition.rms.RecordComparator; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; public class J2MESortExample extends MIDlet implements CommandListener {   private Display display;   private Alert alert;   private Form form = new Form("Mixed RecordEnumeration", null);   private Command exit = new Command("Exit", Command.SCREEN, 1);   private Command start = new Command("Start", Command.SCREEN, 1);   private RecordStore recordstore = null;   private RecordEnumeration recordEnumeration = null;   private Comparator comparator = null;   public J2MESortExample() {     display = Display.getDisplay(this);     form.addCommand(exit);     form.addCommand(start);     form.setCommandListener(this);   }   public void startApp() {     display.setCurrent(form);   }   public void pauseApp() {   }   public void destroyApp(boolean unconditional) {   }   public void commandAction(Command command, Displayable displayable) {     if (command == exit) {       destroyApp(true);       notifyDestroyed();     } else if (command == start) {       try {         recordstore = RecordStore.openRecordStore("myRecordStore", true);         String outputData[] = { "M", "B", "A" };         for (int x = 0; x < 3; x++) {           byte[] byteOutputData = outputData[x].getBytes();           recordstore.addRecord(byteOutputData, 0, byteOutputData.length);         }         StringBuffer buffer = new StringBuffer();         Comparator comparator = new Comparator();         recordEnumeration = recordstore.enumerateRecords(null, comparator, false);         while (recordEnumeration.hasNextElement()) {           buffer.append(new String(recordEnumeration.nextRecord()));           buffer.append("\n");         }         alert = new Alert("Reading", buffer.toString(), null, AlertType.WARNING);         alert.setTimeout(Alert.FOREVER);         display.setCurrent(alert);         recordstore.closeRecordStore();         if (RecordStore.listRecordStores() != null) {           RecordStore.deleteRecordStore("myRecordStore");           recordEnumeration.destroy();         }       } catch (Exception error) {         alert = new Alert("Error Removing", error.toString(), null, AlertType.WARNING);         alert.setTimeout(Alert.FOREVER);         display.setCurrent(alert);       }     }   } } class Comparator implements RecordComparator {   public int compare(byte[] record1, byte[] record2) {     String string1 = new String(record1), string2 = new String(record2);     int comparison = string1.compareTo(string2);     if (comparison == 0)       return RecordComparator.EQUIVALENT;     else if (comparison < 0)       return RecordComparator.PRECEDES;     else       return RecordComparator.FOLLOWS;   } }