package elte.java2_utikalauz5.j2me; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.rms.*; import java.io.*; /** Számolós midlet. @link.forrásfájl {@docRoot}/../data/j2me/src RmsTestMidlet.java @link.letöltés {@docRoot}/../data/j2me RmsTestMidlet.jar @link.letöltés {@docRoot}/../data/j2me RmsTestMidlet.jad @since Java 2 Útikalauz programozóknak 5.0 */ public class RmsTestMidlet extends MIDlet implements CommandListener { private Command exitCommand; private Display display; public RmsTestMidlet() { display = Display.getDisplay(this); exitCommand = new Command("Kilépés", Command.SCREEN, 2); } public void startApp() { String text = ""; try { text = rekordNovel(); } catch (Exception e ) { text = "Hiba: "+e; System.err.println("Hiba: "+e); } TextBox t = new TextBox("Hello MIDlet", text, 256, 0); t.addCommand(exitCommand); t.setCommandListener(this); display.setCurrent(t); } public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } } public String rekordNovel() throws RecordStoreException, IOException { String nev; int szam=0; // rekordtároló megnyitása RecordStore rs = RecordStore.openRecordStore("tarolo", true); // rekordok számának ellen?rzése if( rs.getNumRecords() == 0 ) { // nincs még rekord, beszúrunk egyet ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); nev = "Játékos"; dos.writeUTF(nev); dos.writeInt(1); byte []rekord = baos.toByteArray(); rs.addRecord(rekord, 0, rekord.length); } else { // létezik a rekord, beolvassuk byte[] rekord = rs.getRecord(1); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(rekord)); nev = dis.readUTF(); szam = dis.readInt(); // szám növelése ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); dos.writeUTF(nev); dos.writeInt(szam+1); rekord = baos.toByteArray(); rs.setRecord(1, rekord, 0, rekord.length); } // tároló bezárása rs.closeRecordStore(); return nev + " " + szam; } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }