How to sort recordstore records based on a certain field in it?

后端 未结 1 1359
迷失自我
迷失自我 2021-01-24 01:08

For example there are three records in a recordstore , and the structure of a record in the recordstore is like this : lastname;firstname;moneyborrowed

I wa

相关标签:
1条回答
  • 2021-01-24 01:33

    save using

    Preferences preferences = new Preferences("mydbname");
    preferences.put("key","lastname;firstname;moneyborrowed");
    preferences.save();
    

    and retrieve using

    String val = (string) preferences.get("key");
    

    Preferences.java

    import java.util.Enumeration;
    import java.util.Hashtable;
    
    import javax.microedition.rms.RecordEnumeration;
    import javax.microedition.rms.RecordStore;
    import javax.microedition.rms.RecordStoreException;
    
    public class Preferences {
        private final String mRecordStoreName;
    
        private final Hashtable mHashtable;
    
        public Preferences(String recordStoreName)
        throws RecordStoreException {
            mRecordStoreName = recordStoreName;
            mHashtable = new Hashtable();
            load();
        }
    
        public String get(String key) {
            return (String)mHashtable.get(key);
        }
    
        public void put(String key, String value) {
            if (value == null) value = "";
            mHashtable.put(key, value);
        }
    
        private void load() throws RecordStoreException {
            RecordStore rs = null;
            RecordEnumeration re = null;
    
            try {
                rs = RecordStore.openRecordStore(mRecordStoreName, true);
                re = rs.enumerateRecords(null, null, false);
                while (re.hasNextElement()) {
                    byte[] raw = re.nextRecord();
                    String pref = new String(raw);
                    // Parse out the name.
                    int index = pref.indexOf('|');
                    String name = pref.substring(0, index);
                    String value = pref.substring(index + 1);
                    put(name, value);
                }
            }
            finally {
                if (re != null) re.destroy();
                if (rs != null) rs.closeRecordStore();
            }
        }
    
        public void save() throws RecordStoreException {
            RecordStore rs = null;
            RecordEnumeration re = null;
            try {
                rs = RecordStore.openRecordStore(mRecordStoreName, true);
                re = rs.enumerateRecords(null, null, false);
    
                // First remove all records, a little clumsy.
                while (re.hasNextElement()) {
                    int id = re.nextRecordId();
                    rs.deleteRecord(id);
                }
    
                // Now save the preferences records.
                Enumeration keys = mHashtable.keys();
                while (keys.hasMoreElements()) {
                    String key = (String)keys.nextElement();
                    String value = get(key);
                    String pref = key + "|" + value;
                    byte[] raw = pref.getBytes();
                    rs.addRecord(raw, 0, raw.length);
                }
            }
            finally {
                if (re != null) re.destroy();
                if (rs != null) rs.closeRecordStore();
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题