This Java tip explains RMS Record Management System for storing persistent data. A record store consists of a collection of records which will remain persistent. The RMS API abstracts the device-dependent details of the storage area and access to those details, and it provides a uniform mechanism to create, destroy, and modify data. This ensures portability of MIDlets to different devices.

 import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;

public class RMSDemo extends MIDlet implements CommandListener {
    
    private Display display;
    private RecordStore rs=null;
    private Command exit;
    private RecordEnumeration re;
    private int recordNO;
    Form frm;
    int index=0;
    public RMSDemo() {
        display = Display.getDisplay(this);
        
        //Create a RMS
        try {
            rs= RecordStore.openRecordStore("myRecord",false);
            rs.closeRecordStore();
        } catch(Exception e) {
            System.out.println(e);
        }
        
    }
    
    public void startApp()   {
        
        frm=new Form("RMSDemo");

        exit= new Command("Exit",Command.EXIT,1);
        frm.addCommand(exit);
        
        add= new Command("Add",Command.SCREN,1);
        frm.addCommand(add);

        delete= new Command("Delete",Command.SCREEN,2);
        frm.addCommand(delete);

        show= new Command("SHOW",Command.SCREEN ,3);
        frm.addCommand(show);
        
        frm.setCommandListener(this);
        frm.append("#####");
        display.setCurrent(frm);
    }
    
    public void pauseApp() {
        
    }
    
    public void destroyApp(boolean un) {
    }
    
    // Handling commands
    public void commandAction(Command cmd,Displayable d) {
        if(cmd==add) {
            addRecord();
        } else
            if(cmd==delete) {
            removeRecord();
            } else
                if(cmd==show) {
            try {
                byte b[]= rs.getRecord(recordNO);
                String s= new String(b);
                frm.append(s);
            } catch(Exception e) {}
                }
    }
    
    
    void addRecord() {
        try {
            rs= RecordStore.openRecordStore("myRecord",false);
            index++;
            byte b[]=("Record NO "+index).getBytes();
            //Adding record to record store
            rs.addRecord(b,0,b.length);
            rs.closeRecordStore() ;
        } catch(Exception e) {
            System.out.println(e);
        }
        
    }
    
    // Deleting a record
    void removeRecord(int recordID) {
        try {
            rs= RecordStore.openRecordStore("myRecord",false);
            rs.deleteRecord(recordID);
            index--;
            rs.closeRecordStore();
        } catch(Exception e) {
            System.out.println(e);
        }
    }
    
    
}

 

 

 

 Related Tips