RecordStore类的运行过程很简单明了。你可以用静态RecordStore.openRecordStore方法打开一个已有的记录库,这会 为这个指定名字的记录库返回一个RecordStore实例。假如你指定的记录库的名字不存在,该方法也可以创建一个以改名字命名的新的记录库(参见 createIfNecessary参数)。使用getRecord方法你就可以通过记录ID来得到ID对应的记录。你还可以用addRecord和 setRecord方法分别实现添加记录和更新记录的功能。当你完成了对记录库的操作,别忘了用closeRecordStore来关闭这个记录库。
关于记录ID的一个注释:
在Sun公司的标准实现(Sun’s reference implementation)中,给定记录的ID号与它的插入次序是相同的。记录库中第一个插入的记录以1为它的ID号,第二个插入的记录以2为ID 号,以此类推。尽管这听起来似乎很方便,但是实际上并不总是如此。MIDP规范只要求每个记录都有一个ID号——ID号是如何创建的问题则留给平台的实现 者。
RecordStore类的绝大多数方法都可以抛出一个或者多个RecordStoreException类型的例外。例外的子类和它们对应的意义如下所示:
InvalidRecordIDException例外,当某个被调用的方法涉及一个不存在的记录ID号(当读或者更新某个记录时)或者记录ID号无效(当添加记录时)时,就会抛出InvalidRecordIDException例外。
RecordStoreFullException例外,当RMS(记录治理系统)的存储器满时,就会抛出该例外。例如,用 OpenRecordStore来打开一个指定名字的记录库时,即使没有更新记录库,它也有可能抛出RecordStoreFullException例 外。
RecordStoreNotFoundException例外,当某个被调用的方法涉及到一个不存在的的记录库时,就会抛出该例 外。假如指定名字的记录库不存在,OpenRecordStore也可以创建拥有该名字的记录库。该例外也可能从一个希奇的地方抛 出:CloseRecordStore方法。
RecordStoreNotOpenException例外,假如你试图访问一个尚未被打开的记录库(用OpenRecordStore方法打开记录库)时,就会抛出该例外。
最后,由于被处理的对象是二进制数据,记录库访问方法(getRecord、addRecord和setRecord)均把记录数据做为字节数组处理。 你会发现——除非你有些喜欢被虐待——java.io软件包的流处理类,如ByteArrayInputStream、 ByteArrayOutputStream、 DataInputStream、和DataOutputStream,使用起来并不可靠。
J2ME RecordStore操作异常分析
最新推荐文章于 2024-04-24 16:11:35 发布