Mobile Information Device Profile (MIDP) надає в розпорядження розробника набір класів для збереження і відновлення даних. Ці класи об'єднані назвою Record Management System (RMS). За допомогою RMS можна зберегти дані, і вони не будуть знищені після закриття мидлета. Доступ до RMS можуть отримати тільки мидлети що входять до складу набору (MIDlet suite - набір мидлетов упакованих разом в один jar файл.), Іншими словами до запису в RMS може отримати доступ тільки додаток, яке її створило.
Механізм зберігання пам'яті, який використовується RMS відомий під назвою "record store". Record store - це набір записів - байтових масивів довільних даних. Розмір масиву може змінюватися для кожного запису. RMS не цікавить які дані вона зберігає. Вона не вносить жодних змін. RMS обмежується присвоєнням кожного запису унікального ідентифікатора, який залишається незмінним протягом усього "життя" запису.
Класи record store розміщуються в javax.microedition.rms.RecordStore. Єдиним способом отримає об'єкт RecordStore є використання методу openRecordStore:
Перший параметр openRecordStore - це ім'я record store. Воно не повинно бути не довше 32 символів. Ім'я повинно бути унікальним в рамках даного набору мидлетов. (Мідлети, що не входять в даний набір, ні за яких умов не зможуть отримати доступ до цієї record store.) Другий параметр говорить, чи потрібно створювати нову record store, якщо record store з вказаним ім'ям не існує, або потрібно згенерувати виняткову ситуацію RecordStoreNotFoundException. RecordStoreNotFoundException є розширенням RecordStoreException - кореневого класу всіх виняткових ситуацій RMS. RecordStoreException виникає, якщо record store не може бути створена через відсутність пам'яті, або інших внутрішніх помилок.
У будь-який момент часу для кожної record store існує єдиний екземпляр RecordStore. Якщо два або більше мидлетов одного набору одночасно відкриють деяку record store, всі вони матимуть справу з одним і тим же примірником об'єкта RecordStore.
Після того, як record store відкрита, Ви можете закрити її, викликавши метод closeRecordStore.
Фактично record store ви не вийдете до тих пір, доки Ви не викличте метод closeRecordStore стільки раз, скільки викликали openRecordStore.
Для того, щоб додати запис у відкриту record store, використовуйте метод addRecord:
У разі успішного виконання addRecord повертає унікальний ідентифікатор нового запису. Ідентифікатори записи (ID) починаються з 1 і збільшуються на одиницю для кожної наступної записи. Для того, щоб дізнатися який ідентифікатор буде присвоєно наступному записі, скористайтеся методом getNextRecordID.
Для того щоб видалити запис, використовуйте метод deleteRecord. Єдиним його параметром є ID видаляється записи.
Щоб перемістити запис, скористайтеся методом setRecord:
Зверніть увагу на те, що не існує способу змінити частину даних у записі. Ви можете тільки замінити її новим масивом байт.