在上講中,我們熟悉到汲取音樂播放的專長,能夠制作成擁有BGM和音效、表現力豐富的應用程序。在本講中,我們主要就應用程序本身內部保持的數據保存、讀取進行具體闡述。
要在應用程序中保存用戶設定和高分等相關信息,所以必須在手機終端上的記憶中保存數據。MIDP上定義了稱之為RMS(Record Management System)的數據庫系統。RMS中有稱為“Record store”的列表,其中存在名為Record 的entry。Record按照字節排列,用id可以識別。利用下面的類、接口可以操作Record Store和Record。
類、接口名 作用 RecordStore 表示Record Store的類 RecordEnumeration列舉Record的接口 RecordComparator定義Record comparator的接口 RecordFilter定義Record過濾的接口 RecordListener監視Record Store變更的接口表示Record Store的是Record Store類。Record Store是用RecordStore 中的static方法的open Record Store制作的。
RecordStore.openRecordStore("RecordStoreName", true);
第2個自變量轉化成“true”后,名為“Record Store Name”的Record Store存在的情況下,能夠打開保存的Record Store。但是,名為“Record Store Name”的Record Store不存在的情況下,則會制作新的Record Store,并打開所制作的Record Store 。
第2個自變量轉化成“false”后,名為“Record Store Name”的Record Store存在的情況下,能夠打開保存的Record Store。但,不存在的情況下,則放棄Record Store Not Found Exception。
操作Record Store時,應該在操作前打開Record Store,并在操作完后關閉Record Store。利用剛剛介紹的Record Store的static方法——open Record Store打開Record Store。利用Record Store的引證方法的close Record Store按照下面的敘述可以關閉Record Store。在這兒將關閉的Record Store 例子表示為rs。
rs.closeRecordStore();
以下是表示針對 Record Store 的連貫操作。(ex. 1)
RecordStore rs = null; 按照下面所述的Record Store的static方法清除Record Store。
RecordStore.deleteRecordStore("RecordStoreName");
RMS是非常單純的數據庫系統,所以只需預備最小限度的操作。因此,一般數據庫系統所具有的處理控制和系統故障的恢復功能,在RMS上是不能被支持的。
利用以下Record Store類的方法增加Record 。
int addRecord(byte[] data,int offset, int numBytes)
在data中指定希望保存的數據字節排列、在offset中指定數據顯示排列中的數據開始位置、在numBytes中指定保存數據的字節數。能在numBytes中指定0。此時,null被收藏在Record中。另外,增加數據的Record的id作為返還值返還。
利用以下方法清除Record 。
void deleteRecord(int recordId)
指定用recordId清除Record中的id。對應的Record不存在的情況下,放棄例外。而且,清除后的RecordrecordId也不能再次利用。
利用以下方法更改Record 。
void setRecord(int recordId, byte[] newData, int offSet, int numBytes)
指定recordId中更改的Record,并在newData中指定新收藏的數據字節排列。對應的Record不存在的情況下,放棄例外。
利用下面的方法獲取Record。
int getRecord(int recordId, byte[] buffer, int offset)
byte[] getRecord(int recordId)
上述方法是指,從offset的位置上復制recordId方法指定的Record內容到buffer字節排列。返還值是所復制的數據的字節數。
下面的方法是指,recordId所指定的Record內容作為返還值返還。
利用如下方法可以獲得Record Store操作和Record 操作之外的Record Store信息。
方法 功能 public int getLastModified() 用long獲取最后的修改時刻。用System.currentTimeMillis()形成能夠取得的形式相同的形式。 public int getNextRecordID()獲取下一個recordId public int getNumRecords()獲取Record Store中的Record 數。 public int getVersion()獲取Record Store的版本編號。版本編號通常在每次修改完Record Store后都會自動加1。 public int getSizeAvailable()獲取Record Store的容許量。 public int getSize()獲取Record Store的占有字節數。 public static String[] listRecordStores()全部獲取Record Store名。新聞熱點
疑難解答