Board logo

标题: J2ME 记录管理存储(2) [打印本页]

作者: look_w    时间: 2018-10-15 19:28     标题: J2ME 记录管理存储(2)

数据解释 J2ME API 提供某种接口来解释存储在记录存储中的数据。这个过程包括比较记录来确定它们的相对排序。它还包括根据给定条件的内容过滤。
比较记录 MIDlet 实现                 RecordComparator接口,并定义                 compare (byte[] rec1, byte[] rec2)方法来比较两个候选记录。这个方法的返回值必须指示这两条记录的顺序。           
清单 7. 比较记录并确定相对排序
1
2
3
4
5
6
7
8
9
10
11
Int compare (byte[] b1, byte[] b2)
{
String s1 = new String(b1);
String s2 = new String(b2);
If (s1.compareTo(s2) > 0)
    Return RecordComparator.FOLLOWS;
Else if (s1.compareTo(s2) == 0)
    Return RecordComparator.EQUIVALENT;
Else
    Return RecordComparator.PRECEDES;
}




枚举记录RecordEnumeration接口负责枚举记录存储中的记录。它逻辑上维护记录存储中一连串的记录的                 recordId。枚举器将以记录比较器确定的顺序迭代所有记录(或者如果提供了一个可选的记录过滤器,那么只是一个子集)。如果既没有指定过滤器又没有指定比较器,枚举将以未定义的顺序遍历记录存储中的所有记录。           
清单 8. 枚举记录
1
2
3
RecordEnumeration re = rs.enumerateRecords(null, null, false);
If (re.hasNextElement())
Byte nextRec[] = re.nextRecord();




过滤记录 MIDlet 实现                 RecordFilter接口,定义检查记录是否满足应用程序定义的标准的过滤器。这个应用程序实现                 RecordFilter的                 match()方法来选择                 RecordEnumeration返回的记录。           
清单 9. 过滤记录
1
2
3
4
5
6
7
8
Public boolean matches(byte[] candidate)
{
    String s1 = new String(candidate);
    If (s1.equals("XX"))
         Returns true;
    Else
         Returns false;
}






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0