当前页面: 开发资料首页 → J2ME 专题 → Moto V3c RMS 的奇怪问题,谁遇到过
Moto V3c RMS 的奇怪问题,谁遇到过
摘要: Moto V3c RMS 的奇怪问题,谁遇到过
我在Moto V3c机器上写一个游戏在使用RMS时出现了一个很奇怪的问题,在第一次读取RMS记录时打开RMS抛出RecordStoreNotFoundException异常,这很正常,写入时没问题写入完成之后进行读取测试一下也写进去了,但是在再次进入程序是读取RMS记录依然抛出RecordStoreNotFoundException异常,好像是在上一次使用的RMS写入时创建的记录被删除了,谁见过这种问题,帮帮我,我在这个地方搞了好久了
Moto的机器好像是推出程序的时候必须close掉rms,不然就不会写入。
我写了closeRecordStore()方法,可还是不行
RecordStore.openRecordStore("myrms", true);
其中的第二个参数,你使用的是true吗?
是啊
源代码,拿出来看看,我最近也写了一个,没有你这样的问题啊
每回都true当然就清掉了
private void connect(){
try {
try{
recStore = RecordStore.openRecordStore("OrderDB",false);
}
catch( RecordStoreNotFoundException re ){
}
if(recStore == null){
recStore = RecordStore.openRecordStore("OrderDB",true);
}
}
catch (Exception e) {
System.out.println("Error " + e);
errorMessage.setLabel ("Error:");
errorMessage.setText (e.toString ());
}
}
PS:上面是IBM Developerworks网站上教程的示例连接代码
每回都是true,也不会清掉。
true的意思是:如果有,那么打开,如果没有,那么创建并且打开。
个人觉得可能是你在写入之后的io操作不对。
确认一下是否你的所有的流和RecordStore都关闭了。
虽然MOTO的机器对JAVA实现不好,可是我觉得问题还是应该先从自身找起?
我想你要表达的意思是第一次创建RMS,以后读,我的方案是
try {
RecordStore rs = RecordStore.openRecordStore("rms", false);
} catch (RecordStoreFullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreNotFoundException e) {
// TODO Auto-generated catch block
try {
RecordStore rs = RecordStore.openRecordStore("rms", true);
} catch (RecordStoreFullException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RecordStoreNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RecordStoreException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cuilichen(fjfjfjfj)说的不错,这个问题在一次调试中忽然莫名其妙的解决了,之后我走查了代码
还是没有发现问题的原因,多半是某个地方疏漏了什么。至于angelleecash(陈亮)至于贴出的代码和我写的基本上也差不多,看来以后要小心一点了