Проблема с хранилищем записей Java ME

#java #java-me #rms

#java #java-me #rms

Вопрос:

Я сохраняю данные в хранилище записей. Если приложение запущено, оно работает нормально, но при перезапуске приложения данные в хранилище записей теряются.

Вот моя команда загрузки:

             try {
            int i=1;
            display.setCurrent(list2);
            RecordStore RS = RecordStore.openRecordStore("recordStore", true);
            RecordEnumeration re=  RS.enumerateRecords(null, null, true);
            adresaURL ad = new adresaURL();
            System.out.println("nacteno");
            while(re.hasNextElement()){
                byte br[] = RS.getRecord(i);
                ad.setPopis(new String(br));
                br = RS.getRecord(i 1);
                ad.setUrl(new String(br));
                System.out.println(ad.getPopis());
                System.out.println(ad.getUrl());
                i =2;
                adresy.addElement(ad);
                list2.append(ad.getPopis(), null);
                System.out.println("nacteno2");          
            }
        recordStore.closeRecordStore();
        } catch (Exception e) {
        }
  

Комментарии:

1. И пустой catch блок — ужасная идея! Вы даже не будете уведомлены, если у вас возникнет проблема, вы должны хотя бы поместить туда какое-нибудь протоколирование или e.printStackTrace() !

Ответ №1:

Да, это не сработает.

Если вы используете RecordEnumeration для итерации по вашему RMS (как вы используете), вы должны использовать RecordEnumeration.nextRecord() для извлечения данных записи. Вы используете RecordStore.getRecord() .

RecordEnumeration.nextRecord() продвигает вас RecordEnumeration вперед на единицу. Поскольку вы никогда не вызываете это, ваш цикл:

 while (re.hasNextElement()) {
    ...
}
  

это никогда не закончится!

Комментарии:

1. хорошо, я меняю это, но проблема все еще существует. Это не объясняет, почему цикл не запускается.nacteno2 не записывается на консоль

2. Вы не объяснили, что это была ваша проблема!

3. Генерируются какие-либо исключения? Поместите System.out.println() в свой catch блок.

4. исключения не генерируются. когда приложение запущено, команда загрузки и сохранения работает нормально, но при повторном запуске цикла приложения в команде load не запускается. В подходящем хранилище записей нет никаких данных.

5. Определенно, в хранилище записей нет никаких данных. Как вы это сохраняете?