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 J2MEWriteReadExample extends MIDlet implements CommandListener {
private Display display;
private Alert alert;
private Form form = new Form("Record");
private Command exit = new Command("Exit", Command.SCREEN, 1);
private Command start = new Command("Start", Command.SCREEN, 1);
private RecordStore recordstore = null;
public J2MEWriteReadExample() {
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 = "First Record";
byte[] byteOutputData = outputData.getBytes();
recordstore.addRecord(byteOutputData, 0, byteOutputData.length);
byte[] byteInputData = new byte[1];
int length = 0;
for (int x = 1; x <= recordstore.getNumRecords(); x++) {
if (recordstore.getRecordSize(x) > byteInputData.length) {
byteInputData = new byte[recordstore.getRecordSize(x)];
}
length = recordstore.getRecord(x, byteInputData, 0);
}
alert = new Alert("Reading", new String(byteInputData, 0, length), 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);
}
}
}
}