Mega Code Archive

 
Categories / Java Tutorial / J2ME
 

Mixed Record Enumeration

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; 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.RecordEnumeration; import javax.microedition.rms.RecordStore; public class J2MEMixedRecordEnumerationExample extends MIDlet implements CommandListener {   private Display display;   private Alert alert;   private Form form = new Form("Mixed RecordEnumeration");   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;   public J2MEMixedRecordEnumerationExample() {     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);         byte[] outputRecord;         String outputString[] = { "First Record", "Second Record", "Third Record" };         int outputInteger[] = { 15, 10, 5 };         boolean outputBoolean[] = { true, false, true };         ByteArrayOutputStream outputStream = new ByteArrayOutputStream();         DataOutputStream outputDataStream = new DataOutputStream(outputStream);         for (int x = 0; x < 3; x++) {           outputDataStream.writeUTF(outputString[x]);           outputDataStream.writeBoolean(outputBoolean[x]);           outputDataStream.writeInt(outputInteger[x]);           outputDataStream.flush();           outputRecord = outputStream.toByteArray();           recordstore.addRecord(outputRecord, 0, outputRecord.length);         }         outputStream.reset();         outputStream.close();         outputDataStream.close();         StringBuffer buffer = new StringBuffer();         byte[] byteInputData = new byte[300];         ByteArrayInputStream inputStream = new ByteArrayInputStream(byteInputData);         DataInputStream inputDataStream = new DataInputStream(inputStream);         recordEnumeration = recordstore.enumerateRecords(null, null, false);         while (recordEnumeration.hasNextElement()) {           recordstore.getRecord(recordEnumeration.nextRecordId(), byteInputData, 0);           buffer.append(inputDataStream.readUTF());           buffer.append("\n");           buffer.append(inputDataStream.readBoolean());           buffer.append("\n");           buffer.append(inputDataStream.readInt());           buffer.append("\n");           alert = new Alert("Reading", buffer.toString(), null, AlertType.WARNING);           alert.setTimeout(Alert.FOREVER);           display.setCurrent(alert);         }         inputStream.close();         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);       }     }   } }