`
hu1010
  • 浏览: 23576 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

j2me游戏中使用记录管理系统

阅读更多

纪录管理系统(Record Management System ,简称RMS)。他能使你能够在手机设备的内存中持久地存储数据。

一、    记录管理系统概览


记 录管理系统简单的说就是一个小型的数据库。具有典型的数据库的结构模型。RMS提供了RecordStore类,用于MIDlet应用程序和RMS通信。 RecordStore相当于数据库中的表。我们可以在每个表中,放置若干条记录(Record),每条记录包括两列数据。如下图所示:
 
存储在RMS中的每个记录存储都和一个MIDlet套件相关联(一个套件就是一个JAR文件,其中可以包括多个MIDlet类)。并且有一个文件名来标识他。

在记录存储中的每一条记录都只有两列表格,其中第一列是一个int型的整数表示纪录的ID,另一列用一个byte型的数组表来记录数据。记录号可以看作是数据表的主键。不管你存储的是字符串或整数,他们都按照byte数组从一条记录读出或写入到一条记录中。

二、深入RecordStore类


在MIDP  API 中,通过javax,microedition.rms包来支持RMS。这个包提供一个RecordStore类和几个接口,来支持丢纪录存储的创建和操 作。RecordStore类为单个纪录存储提供了可编程接口,使得对一个记录存储的读写操作变得非常简单。

使用步骤:
1、    打开或者创建一个记录存储。
2、    从纪录存储中读出数据或者向记录存储写入数据。
3、    关闭记录存储。

其中有些最为常用的方法:
openRecordStore()打开一个记录存储,以便读出或写入数据。
getNumRecords()获得纪录存储中记录的数目。
getRecordSize()获得一条记录的数据大小。
getRecord()从一个单独的纪录中获得数据。
addRecord()向一个记录存储添加一条记录的数据。
deleteRecord()删除一条的纪录。
deleteRecordStore()删除整个记录存储。
closeRecordStore()关闭一个记录存储。

在使用记录存储之前,先要创建一个RecordStore对象。示例如下:
RecordStore    rs = null ;

打开一个记录存储,可以使用RecordStore对象调用openRecordStore()方法来实现:
try{
     rs = RecordStore .openRecordStore(“somename” , false );
}
catch( Exception e){
     System.err.println(“Failed opening record store !”) ;
}

openRecordStore 方法的第一个参数就是纪录存储的名字,第二个参数表示当指定名字的纪录存储不存在的话,是否应该创建一个新的记录存储。该参数如果为true,则表示当指 定名字的纪录存储不存在的话可以创建一个新的同名记录存储并打开,false表示仅打开已存在的记录存储,不会创建记录存储。
使用前面创建的记录存储后就可以判断是否已经成功的打开一个记录存储了。

下面我们就可以往打开的记录存储中写入记录了:
try{
    rs.addRecord(redordData, 0 , recordData.length);
}
catch ( Exception e ){
    System.err.println( “ Failed writhing to record store ! ”);
}
其中addRecord方法中的第一个参数就是包含记录数据的一个byte数组。后两个参数表示数据在数组中的开始位置和写入数据的字节数。上面的例子我们将数组中的所有数据写入了记录存储。

如果知道存储数据的大小,我们可以简单的使用getRecord方法:
byte []tmp = new byte[n] ;
try
{
tmp = rs.getRecord(recordid) ;
}catch(Exception e)
{
}
这里我们只是用了纪录的ID作为参数即可。

如果不知道存储数据的大小就显得麻烦写了。
方法一:
我们可以分配足够大的数组来保存读出的数据如下所示:
byte []tmp = new byte[n] ;
try
{
int len = rs.getRecord(recordid , tmp , 0) ;
}catch(Exception e)
{
}
上面的例子我们使用了三个参数。第一个参数仍然是纪录ID,第二个参数是要存放数据的数组,第三个参数表示从第一位开始读。

如果要删除整个纪录存储的话,我们使用deleteRecordStore方法就可以了,它只需要提供记录存储的名字做参数。示例如下:
try{
      RecordStore.deleteRecordStore(“somename”);
}
catch (Exception e){

}

最后在使用完毕,我们要记得使用closeRecordStore方法关闭已经打开的记录存储。
try{
rs.closeRecordStore() ;
}
catch(Exception e){

}

分享到:
评论

相关推荐

    j2me 中文教程 开发环境 J2ME语言

    第五章“MIDP 的持久化解决方案— RMS” 为我们讲解了数据持久化机制——记录管理 系统(Record Management System RMS)。这一特别的小型数据库使得MIDP 的数据保存变得很特 别。 第六章“GAME API” 介绍了 MIDP 2.0...

    基于j2me的角色小游戏包括高分榜

    这是我自己写的一个j2me的小游戏,里面有一个简单的小游戏(马路杀手),然后玩过之后可以选择是否保存,保存之后进入高分榜(存在rms记录管理系统中),

    J2ME 中文版教程

    第五章“MIDP 的持久化解决方案 — RMS” 为我们讲解了数据持久化机制——记录管理 系统(Record Management System RMS)。这一特别的小型数据库使得MIDP 的数据保存变得很特 别。 第六章“GAME API” 介绍了MIDP 2.0...

    J2ME 中文教程

    第五章“MIDP的持久化解决方案 — RMS” 为我们讲解了数据持久化机制——记录管理系统(Record Management System RMS)。这一特别的小型数据库使得MIDP的数据保存变得很特别。 第六章“GAME API” 介绍了MIDP 2.0...

    tengge手机端j2me编程教程完整版

    ┌第四章 j2me游戏开发基础 ┃4.1 游戏画布的使用 ┃4_2.游戏精灵的使用 ┃4_3.图层管理器的使用 ┃4_4.游戏精灵旋转和其他方法 ┃4_5.碰撞检测 ┃4_6.游戏贴图的使用 ┃第四章教程打包下载 ┗━━━━━━━━━━...

    J2ME 中文教程1.01a

    第五章“MIDP的持久化解决方案 — RMS” 为我们讲解了数据持久化机制——记录管理系统(Record Management System RMS)。这一特别的小型数据库使得MIDP的数据保存变得很特别。 第六章“GAME API” 介绍了MIDP 2.0...

    J2ME中文教程

    第五章“MIDP 的持久化解决方案 — RMS” 为我们讲解了数据持久化机制——记录管理系统(Record Management System RMS)。这一特别的小型数据库使得MIDP 的数据保存变得很特别。 第六章“GAME API” 介绍了MIDP 2.0 ...

    j2me手机开发相关源代码

    6记录管理系统(RMS) 7异常处理 8多线程应用 9移动网络应用 10文件管理 11个人信息管理 12无线消息服务 13Push技术 14XMl应用 15多媒体开发 16游戏开发 17设计模式 18单元测试 19"在线听歌"商务应用实例

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA上百实例源码以及开源项目源代码

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA项目开发全程实录(含电子书和所有源代码)

    第1章 进销存管理系统(Swing+SQL Server 2000实现) 1 教学视频:1小时42分 1.1 开发背景 2 1.2 系统分析 2 1.2.1 需求分析 2 1.2.2 可行性分析 2 1.2.3 编写项目计划书 4 1.3 系统设计 6 1.3.1 系统目标 6 1.3.2 ...

    java应用软件程序设计

    475 实例124 插入和替换表单元素 476 实例125 使用线程与定时 478 实例126 J2ME绘图 480 实例127 基于J2ME的小游戏 483 实例128 建立无线HTTP连接 485 实例129 收发短信 487 实例130 获取基金...

    Google Android SDK开发范例大全(完整版)

    余志龙,来自于手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及J2EE、JSP、Servlet、JavaBeans、PHP、C#等程序语言,熟悉面向对象技术与Eclipse...

Global site tag (gtag.js) - Google Analytics