понедельник, 8 ноября 2010 г.

Хранение записей в RecordStore

В J2ME есть замечательная возможность сохранять информацию в контейнерах RecordStore.
Я его использовал, например, когда писал BookReader, чтоб начинать читать с того места, где остановился. Ниже код для работы с RecordStore


import java.lang.Object;
import javax.microedition.rms.*;
/*** Works with RecordStore***/
public class RecStore {
   private RecordStore rs = null;
   static final String REC_STORE = "MonthMIDlet"; 
   
   public void openRecStore () // создаем и/или открываем RecordStore
   {
      try
      { 
      rs = RecordStore.openRecordStore(REC_STORE, true );
      }
      catch (Exception e)
      {System.err.println(e.toString());}
   }

   public void writeRecord(String str) // записываем str в RecordStore
   {
      byte[] rec = str.getBytes();
      try
      {
         rs.addRecord(rec, 0, rec.length);
      }
      catch (Exception e)
      {System.err.println(e.toString());}
   }
/* считываем все записи и 
возвращаем только ту, которая recNum */
   public String readRecords (int recNum) 
   {
      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);
           if (i == recNum) 
        return new String(recData, 0, len);
         }
      }
      catch (Exception e)
      {System.err.println(e.toString());}
   return null;
   }
   
   public void closeRecStore() // закрываем RecordStore
   {
      try
      {
         rs.closeRecordStore();
      }
      catch (Exception e)
      {System.err.println(e.toString());}
   }
   
   public void deleteRecStore() // удаляем RecordStore
   {
      if (RecordStore.listRecordStores() != null)
      {
         try
         {
            RecordStore.deleteRecordStore(REC_STORE);
         }
         catch (Exception e)
         {System.err.println(e.toString());}
      }      
   }
}

3 комментария:

  1. Ты когда подсветку кода прикрутишь?

    ОтветитьУдалить
  2. да я блин не пойму как она работает!

    ОтветитьУдалить
  3. Нормально она работает :) просто ты яваскрипт-то подключил, и разметку он делает, вот только кто CSS подрубать будет? Ты ж информацию о цветах не подгрузил.

    ОтветитьУдалить