Read and write to the record store. : Database Persistence « J2ME « Java






Read and write to the record store.

Read and write to the record store.
/*--------------------------------------------------
* ReadWrite.java
*
* Read and write to the record store.
*
* No GUI interface, all output is to the console
*
* Example from the book:     Core J2ME Technology
* Copyright John W. Muchow   http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose 
*-------------------------------------------------*/
import javax.microedition.rms.*;

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

public class ReadWrite extends MIDlet
{
  private RecordStore rs = null;
  static final String REC_STORE = "db_1";

  public ReadWrite()
  {
    openRecStore();   // Create the record store
    
    // Write a few records and read them back
    writeRecord("J2ME and MIDP");
    writeRecord("Wireless Technology");    
    readRecords();
    
    closeRecStore();  // Close record store
    deleteRecStore(); // Remove the record store
  }

  public void destroyApp( boolean unconditional )
  {
  }

  public void startApp()
  {
    // There is no user interface, go ahead and shutdown
    destroyApp(false);
    notifyDestroyed();
  }

  public void pauseApp()
  {
  }

  public void openRecStore()
  {
    try
    {
      // The second parameter indicates that the record store
      // should be created if it does not exist
      rs = RecordStore.openRecordStore(REC_STORE, true );
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }    
  
  public void closeRecStore()
  {
    try
    {
      rs.closeRecordStore();
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }

  public void deleteRecStore()
  {
    if (RecordStore.listRecordStores() != null)
    {
      try
      {
        RecordStore.deleteRecordStore(REC_STORE);
      }
      catch (Exception e)
      {
        db(e.toString());
      }
    }      
  }

  public void writeRecord(String str)
  {
    byte[] rec = str.getBytes();

    try
    {
      rs.addRecord(rec, 0, rec.length);
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }

  public void readRecords()
  {
    try
    {
      // Intentionally make this too small to test code below
      byte[] recData = new byte[5]; 
      int len;

      for (int i = 1; i <= rs.getNumRecords(); i++)      
      {
        if (rs.getRecordSize(i) > recData.length)
          recData = new byte[rs.getRecordSize(i)];
       
        len = rs.getRecord(i, recData, 0);
        System.out.println("Record #" + i + ": " + new String(recData, 0, len));
        System.out.println("------------------------------");                        
      }
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }

  /*--------------------------------------------------
  * Simple message to console for debug/errors
  * When used with Exceptions we should handle the 
  * error in a more appropriate manner.
  *-------------------------------------------------*/
  private void db(String str)
  {
    System.err.println("Msg: " + str);
  }
}
           
       








Related examples in the same category

1.Write Read Mixed Data Types Example Write Read Mixed Data Types Example
2.Record Enumeration Example Record Enumeration Example
3.Mixed Record Enumeration Example Mixed Record Enumeration Example
4.Sort Record Example
5.Sort Mixed Record Data Type Example Sort Mixed Record Data Type Example
6.Search ExampleSearch Example
7.Search Mixed Record Data Type ExampleSearch Mixed Record Data Type Example
8.Record MIDletRecord MIDlet
9.Store DatabaseStore Database
10.Test the RMS listener methodsTest the RMS listener methods
11.Use streams to read and write Java data types to the record store.Use streams to read and write Java data types to the record store.
12.Persistent Ranking MIDlet
13.Persistence: storing and showing game scores
14.Read Display FileRead Display File