J2ME Java Tutorial

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.RecordStore;
public class J2MEWriteReadMixedDataTypesExample extends MIDlet implements CommandListener {
  private Display display;
  private Alert alert;
  private Form form = new Form("Mixed Record");
  private Command exit = new Command("Exit", Command.SCREEN, 1);
  private Command start = new Command("Start", Command.SCREEN, 1);
  private RecordStore recordstore = null;
  public J2MEWriteReadMixedDataTypesExample() {
    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";
        int outputInteger = 15;
        boolean outputBoolean = true;
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        DataOutputStream outputDataStream = new DataOutputStream(outputStream);
        outputDataStream.writeUTF(outputString);
        outputDataStream.writeBoolean(outputBoolean);
        outputDataStream.writeInt(outputInteger);
        outputDataStream.flush();
        outputRecord = outputStream.toByteArray();
        recordstore.addRecord(outputRecord, 0, outputRecord.length);
        outputStream.reset();
        outputStream.close();
        outputDataStream.close();
        String inputString = null;
        int inputInteger = 0;
        boolean inputBoolean = false;
        byte[] byteInputData = new byte[100];
        ByteArrayInputStream inputStream = new ByteArrayInputStream(byteInputData);
        DataInputStream inputDataStream = new DataInputStream(inputStream);
        for (int x = 1; x <= recordstore.getNumRecords(); x++) {
          recordstore.getRecord(x, byteInputData, 0);
          inputString = inputDataStream.readUTF();
          inputBoolean = inputDataStream.readBoolean();
          inputInteger = inputDataStream.readInt();
          inputStream.reset();
        }
        inputStream.close();
        inputDataStream.close();
        alert = new Alert("Reading", inputString + " " + inputInteger + " " + inputBoolean, null,
            AlertType.WARNING);
        alert.setTimeout(Alert.FOREVER);
        display.setCurrent(alert);
        recordstore.closeRecordStore();
        if (RecordStore.listRecordStores() != null) {
          RecordStore.deleteRecordStore("myRecordStore");
        }
      } catch (Exception error) {
        alert = new Alert("Error Removing", error.toString(), null, AlertType.WARNING);
        alert.setTimeout(Alert.FOREVER);
        display.setCurrent(alert);
      }
    }
  }
}