`
hu1010
  • 浏览: 24032 次
  • 性别: 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游戏的基本结构

    开发者可以创建、读取、更新和删除 RecordStore 中的记录,以便保存游戏进度、高分等信息。 九、网络通信 J2ME 的 javax.microedition.io 包提供了连接管理器,支持 HTTP、WAP、TCP/IP 等网络协议,允许游戏实现...

    J2ME 记录管理存储

    在J2ME(Java 2 Micro Edition)的开发环境中,记录管理存储(Record Management System,简称RMS)扮演着关键角色,它为MIDlet应用程序提供了数据持久化存储的能力。MIDlet,即移动信息设备上的小型应用,依赖于RMS...

    j2me游戏开发实例

    在J2ME游戏开发实例中,它可能详细介绍了每个游戏的实现原理、技术要点以及运行要求。 2. **Chap12、Chap17、...**:这些章节名称可能对应着书籍中的各个章节,每个章节可能涵盖不同的游戏开发主题,如2D图形绘制、...

    J2ME游戏开发J2ME游戏开发

    **J2ME游戏开发** Java 2 Micro Edition (J2ME) 是一种Java平台,主要用于开发和部署在移动设备、嵌入式系统以及家用电器上的应用程序,尤其在早期的智能手机和功能手机上广泛用于游戏开发。J2ME以其轻量级、跨平台...

    J2me 游戏源代码

    描述中提到的“多个j2me游戏源代码”暗示了这个压缩包可能包含了多种不同类型的J2ME游戏,如益智、动作、冒险或休闲等。这些游戏可能具有不同的复杂度,适合不同程度的开发者学习。"游戏简单易学"意味着这些源代码...

    基于J2ME手机游戏源代码

    在标题中提到的“基于J2ME手机游戏源代码”,我们可以理解为这是一套使用Java编程语言,遵循J2ME规范开发的手机游戏的原始代码。这些源代码通常包含了游戏逻辑、图形渲染、用户输入处理、游戏状态管理等多个关键组成...

    j2me的电话记录系统

    它提供了开发和部署应用程序的基本框架,包括手机上的游戏、实用工具以及如本例中的电话记录系统。 本项目是一个基于J2ME的电话记录程序,旨在帮助初学者了解如何利用J2ME进行实际应用开发。程序在JBuilder环境下...

    J2ME拼图游戏源代码【内附指导书】

    《J2ME拼图游戏源代码解析与学习指南》 ...通过研究源代码和相关文档,开发者可以掌握如何在资源有限的环境中实现丰富的游戏功能,以及如何利用J2ME进行数据管理和图形渲染,对于提升J2ME开发技能大有裨益。

    J2ME教学代码整理.rar_j2me_j2me 游戏

    8. **性能优化**:由于移动设备资源有限,J2ME游戏开发需要关注内存管理和代码优化,避免过度消耗系统资源。 9. **图形与动画**:J2ME使用低级别的Graphics API进行图形绘制,开发者需要手动实现游戏对象的运动和...

    j2me飞机游戏

    J2ME游戏开发涉及到的技术点还包括: - **MIDP(Mobile Information Device Profile)**:J2ME的一部分,定义了移动设备上的用户界面和网络功能。 - **CLDC(Connected Limited Device Configuration)**:J2ME的另...

    J2me开发的小游戏

    在"是男人就撑20秒"游戏中,开发者可能使用了J2ME的MIDP API来构建游戏逻辑。游戏的核心部分可能包含以下几个关键知识点: 1. 用户界面:游戏界面可能使用了MIDP的Canvas类来实现自定义画布,通过重写paint()方法...

    j2me游戏开发流程

    5. **图形资源**:J2ME游戏通常使用位图(Bitmap)作为图形资源。开发者需要创建或获取合适的图像,进行优化以适应低内存和CPU资源的移动设备。 6. **音效和音乐**:虽然J2ME对音频支持有限,但仍然可以通过MIDP的...

    PaoPao.rar_J2ME 泡泡_j2me_j2me 游戏_paopao game_游戏 j2me

    此外,J2ME的事件处理系统也是游戏交互的关键。开发者会监听用户的按键输入,根据按键事件更新游戏状态,如改变泡泡发射方向或启动新的游戏回合。同时,定时器(Timer类)的使用可以确保游戏按照设定的帧率平稳运行...

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

    本项目是一个基于J2ME的角色小游戏——“马路杀手”,它包含了一个简单的游戏机制和一个高分榜功能,通过记录管理系统(RMS)在设备上持久保存玩家的得分。 1. **游戏机制**:游戏的核心部分是“马路杀手”。这是一...

    J2ME_游戏开发_with_MIDP2

    同样,虽然不会详细解释如何使用记录管理系统(RMS),但会涉及使用RMS的主题,如高分和游戏设置。 ### 线程管理 在游戏开发中,线程管理是一个非常重要的技能。J2ME游戏通常需要多线程来处理游戏逻辑、图形渲染和...

    j2me--API.rar_j2me_j2me api_j2me 游戏_手机游戏

    1. **性能优化**: 由于移动设备的资源限制,J2ME游戏开发者需要关注代码效率,减少内存消耗,避免无谓的计算,并使用位图操作而非矢量图形。 2. **用户体验**: 利用有限的屏幕空间和触控输入,设计简洁易用的用户...

    j2me开发角色游戏 黑暗迷宫

    8. **网络通信**:虽然不是必须,但一些J2ME游戏可能包含在线功能,如排行榜、多人游戏等。这需要利用J2ME的网络API来实现HTTP请求或Socket通信。 9. **调试和测试**:在J2ME平台上,开发者需要在各种不同设备上...

    J2ME游戏开发.pdf

    - **记录管理系统(RMS)**:虽然不会详细介绍RMS的使用方法,但会涉及如何使用RMS来保存高分记录和游戏设置等内容。 - **性能优化技巧**:提供关于如何优化游戏性能的技术建议。 综上所述,《J2ME游戏开发》不仅是一...

    J2ME手机游戏开发技术与实践 ppt与源代码 李政仪

    而记录用户数据和游戏进度,可以使用RecordStore API,这是一个简单的键值对存储系统。 **6. 性能优化** 由于J2ME运行在资源有限的移动设备上,性能优化至关重要。这包括减少内存占用、优化图形绘制、控制CPU使用...

    基于J2ME平台的手机游戏贪吃蛇程序的设计与实现

    - **JAM**:用于管理和发布J2ME应用程序的应用管理工具。 - **JAVA语言介绍**:Java是一种面向对象的编程语言,具有平台无关性、安全性高、可移植性强等特点。J2ME是Java的一个版本,专为嵌入式和消费类电子设备...

Global site tag (gtag.js) - Google Analytics