- 浏览: 5827074 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
//RMS工具类
//需要存储的对象
import java.util.Vector; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; import javax.microedition.rms.RecordStoreException; public class Rms { private RecordStore rs; private String rmsName; public Rms(String rmsName) { this.rmsName = rmsName; } public String getRmsName() { return rmsName; } // 打开表 public void openRecordStore() throws RecordStoreException { rs = RecordStore.openRecordStore(rmsName, true); } // 关闭表 public void closeRecordStore() throws RecordStoreException { rs.closeRecordStore(); } // 删除表 public static void delRecordStore(String rmsName) throws RecordStoreException { RecordStore.deleteRecordStore(rmsName); } // 获得记录表名 public String[] getAllRMSNames() { return RecordStore.listRecordStores(); } // 返回全部记录 public Vector getAllRecords() throws RecordStoreException { Vector vec = new Vector(); RecordEnumeration e = rs.enumerateRecords(null, null, false); while (e.hasNextElement()) { byte[] data = e.nextRecord(); vec.addElement(data); } return vec; } // 修改记录 public void setRecord(int id, byte[] data) throws RecordStoreException { rs.setRecord(id, data, 0, data.length); } // 新增记录,返回记录号 public int addRecord(byte[] data) throws RecordStoreException { return rs.addRecord(data, 0, data.length); } // 删除记录 public void delRecord(int id) throws RecordStoreException { rs.deleteRecord(id); } // 返回记录 public byte[] getRecord(int id) throws RecordStoreException { return rs.getRecord(id); } // 返回下个记录ID public int getNextRecordId() throws RecordStoreException { return rs.getNextRecordID(); } // 删除rms public void deleteRMS(String name) throws RecordStoreException { rs.closeRecordStore(); RecordStore.deleteRecordStore(name); } }
Rms indexRms=new Rms(Consts.INDEX_RMS_NAME); indexRms.openRecordStore(); Vector vec = indexRms.getAllRecords(); for (int i = 0; i < vec.size(); i++) { RmsIndex index = RmsIndex.deserialize((byte[]) vec.elementAt(i)); } //新增记录 indexRms.addRecord(index.serialize()); //删除记录 if (indexRms != null) indexRms.closeRecordStore(); //删除rms indexRms.deleteRMS(indexRms.getRmsName()); //删除记录 indexRms.delRecord(index.getID()); //新增新记录 index.setID(indexRms.getNextRecordId()); indexRms.addRecord(index.serialize()); //更新 indexRms.setRecord(index.getID(), index.serialize());
//需要存储的对象
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; public class RmsIndex { private int ID;// 索引ID private String name = "";// 记录名称 private boolean isVisit = false;// 本地已更新 private boolean isModify = true;// 网络文件是否修改 private boolean isFound = false; // 有无记录 private String version = "";// 记录版本 private String rmsName = ""; // rms名称 private int contID = 0;// rms id private int type;// 存储类型0: 长期缓存 1: 关闭后删除 public RmsIndex() { } public int getID() { return ID; } public void setID(int id) { ID = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isVisit() { return isVisit; } public boolean isModify() { return isModify; } public void setModify(boolean isModify) { this.isModify = isModify; } public void setVisit(boolean isVisit) { this.isVisit = isVisit; } public String getVersion() { return version; } public boolean isFound() { return isFound; } public void setFound(boolean isFound) { this.isFound = isFound; } public void setVersion(String version) { this.version = version; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getRmsName() { return rmsName; } public void setRmsName(String name) { rmsName = name; } public int getContID() { return contID; } public void setContID(int contID) { this.contID = contID; } public byte[] serialize() throws IOException { ByteArrayOutputStream bos = null; DataOutputStream dos = null; try { bos = new ByteArrayOutputStream(); dos = new DataOutputStream(bos); dos.writeInt(getID()); dos.writeUTF(getName()); dos.writeBoolean(isFound()); dos.writeUTF(getVersion()); dos.writeUTF(getRmsName()); dos.writeInt(getContID()); dos.flush(); return bos.toByteArray(); } finally { if (bos != null) { bos.close(); bos = null; } if (dos != null) { dos.close(); dos = null; } } } public static RmsIndex deserialize(byte[] data) throws IOException { ByteArrayInputStream bis = null; DataInputStream dis = null; try { bis = new ByteArrayInputStream(data); dis = new DataInputStream(bis); RmsIndex myIndex = new RmsIndex(); myIndex.setID(dis.readInt()); myIndex.setName(dis.readUTF()); myIndex.setFound(dis.readBoolean()); myIndex.setVersion(dis.readUTF()); myIndex.setRmsName(dis.readUTF()); myIndex.setContID(dis.readInt()); return myIndex; } finally { if (bis != null) { bis.close(); bis = null; } if (dis != null) { dis.close(); dis = null; } } } }
private void writeRMS(){ try { RecordStore rs=RecordStore.openRecordStore("app", true); ByteArrayOutputStream bos=new ByteArrayOutputStream(); DataOutputStream dos=new DataOutputStream(bos); for(int i=0;i<point.length;i++){ for(int j=0;j<point[0].length;j++){ dos.writeByte(point[i][j]); } } byte[] data=bos.toByteArray(); if(rs.getNumRecords()==0){ rs.addRecord(data, 0, data.length); }else{ rs.setRecord(1, data, 0, data.length); } dos.close(); bos.close(); rs.closeRecordStore(); } catch (RecordStoreFullException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RecordStoreNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RecordStoreException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void readRMS(){ try { RecordStore rs=RecordStore.openRecordStore("app", true); if(rs.getNumRecords()==0){ System.out.println("没有记录"); }else{ byte[] data=rs.getRecord(1); ByteArrayInputStream bis=new ByteArrayInputStream(data); DataInputStream dis=new DataInputStream(bis); for(int i=0;i<point.length;i++){ for(int j=0;j<point[0].length;j++){ point[i][j]=dis.readByte(); } } dis.close(); bis.close(); rs.closeRecordStore(); } } catch (RecordStoreFullException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RecordStoreNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RecordStoreException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
发表评论
文章已被作者锁定,不允许评论。
-
3个RPG练习,最后一个是卡马克卷轴
2010-12-11 18:02 2368import javax.microedition.lcd ... -
j2me小练习,教学用
2010-12-07 20:42 1855有用的J2ME功能函数 ... -
自己早期做的一个基于j2me的飞行射击类游戏
2010-12-07 20:23 2149早期的代码,MVC思想 -
自己早期做的一个基于j2me的魔塔
2010-12-07 20:13 2125上面一个不完整,但代码好(MVC),但没抽出类; 下面一个比 ... -
j2me中的A*算法
2010-12-02 14:08 2072import javax.microedition.mid ... -
j2me代理连接返回码总是400的问题
2010-09-21 16:24 2775400是因为错误的语法导致服务器无法理解请求信息。 Con ... -
当显示内容过多时的滚屏类Container.java
2010-09-16 11:32 2176很多时候,由于手机屏幕太小,一下子显示不了那么多内容,这个时候 ... -
j2me读取中文的配置文件
2010-09-14 20:25 2174还可以参考这篇文章: http://gundumw100.it ... -
使用jsr172解析xml
2010-09-14 10:40 1971基类: import java.io.ByteArrayI ... -
面向对象的RMS操作
2010-09-14 10:29 1725将需要保存的数据集中起来形成一个model类,并且要实现序列化 ... -
Java版数独算法实现
2010-09-10 16:32 16368数独的历史: 数独前身为“九宫格”,最早起源于中国。数千 ... -
使用KXML解析xml数据
2010-09-10 13:05 9346最近做项目,服务器传过来的都是Xml格式的数据,需要解析xml ... -
类似小球列表的选择控件(9宫格)
2010-08-27 15:50 1770import javax.microedition.lcd ... -
j2me工具类:TextUtil.java
2010-08-11 21:24 1722import java.util.Vector; i ... -
j2me工具类:Database.java
2010-08-11 21:18 2030/** * <p>Title: & ... -
j2me工具类:ReadFromFile.java
2010-08-11 21:15 4351import java.io.*; import jav ... -
j2me竖向滚动菜单的基本做法
2010-08-11 16:58 2037public class AppCanvas extend ... -
j2me工具类:声音播放类SoundUtil
2010-06-04 23:21 2140用法: 将需要播放的音乐都罗列在name,type数组中,需要 ... -
j2me工具类:PalettedImage调色板类
2010-06-04 22:57 1815该方法网上可以找到,我添加了一个重载函数: public Im ... -
地图编辑器Mappy下载
2010-05-25 22:30 3334简单的手机游戏地图编辑器,共享之。。。 eclipseme下 ...
相关推荐
总结来说,RMS是J2ME中存储数据的重要工具,通过理解单一记录的构造以及RecordStore的操作,开发者能够有效地管理应用程序的数据存储,实现游戏状态的保存、用户数据的持久化等功能。正确地使用RMS是开发J2ME应用不...
创建记录存储是使用RecordStore类的静态方法`RecordStore.openRecordStore(String recordStoreName, boolean createIfNecessary, byte security, int maxRecords)`。参数包括记录存储的名称、是否在不存在时创建、...
标题"RMS.zip_rms"表明这是一个关于使用J2ME RMS进行数据库操作的压缩包文件,可能包含了示例代码或者工具,供开发者学习和使用。 RMS是J2ME MIDP(Mobile Information Device Profile)的一部分,它提供了一种轻量...
【J2ME RMS 知识点详解】 J2ME(Java 2 Micro Edition)是Java平台上针对嵌入式和移动设备的一种轻量级开发框架。...尽管RMS的功能相对简单,但对于移动应用开发来说,它是一种实用且高效的工具。
在RMS2000的源码中,C++的特性将被充分利用,如面向对象编程(OOP)来设计类和对象,模板机制用于代码复用,以及异常处理来确保程序的健壮性。 在学习和分析RMS2000的源代码时,你需要关注以下几个关键点: 1. 数据...
1. `RecordStore` 类:这是RMS的核心类,用于管理记录存储。开发者需要通过它来打开、创建、删除RecordStore,以及进行读写操作。 2. `RecordEnumeration` 接口:提供了遍历RecordStore中所有记录的方法。 3. `...
位图(BMP)是一种无损的图像格式,保留了原始图像的所有细节,而JPEG则是一种有损压缩格式,更适合于存储颜色丰富的照片类图像。 总结来说,这个压缩包包含的资源是用于计算机视觉标定的棋盘格和圆形标定板模板,...
首先,要使用RMS,我们需要导入相关的javax.microedition.rms.*包,并创建RecordStore对象。RecordStore类是RMS的核心,它代表了一个数据存储实例。通过调用RecordStore的静态方法openRecordStore,我们可以打开或...
总的来说,rms是一个利用Node.js的强大能力构建的资源管理系统,它涵盖了用户管理、权限控制、文件管理和数据库操作等多个核心功能,旨在为企业和个人提供一个便捷、高效的资源管理工具。通过深入研究和定制rms源码...
- `java.io.*`、`java.lang.*`和`java.util.*`提供了一些基本的输入输出、语言和通用工具类。 2. **KCB类**: - `KCB`类扩展了`MIDlet`,实现了`CommandListener`接口,是这个课程表应用的核心类。 - `days`数组...
【工具类和基本类的使用】 J2ME提供了丰富的内置工具和基本类: 1. **Random**:生成随机数。 2. **Math**:数学运算。 3. **Date**:日期和时间处理。 4. **System**:系统相关操作,如内存管理。 5. **...
`AddressList`类中的`encode()`和`decode()`方法正是为了配合RMS的存储特性而设计的。 #### 总结 J2ME电话本程序的开发不仅涉及UI设计、事件处理,还包含了数据存储的核心技术。通过使用特定的J2ME类库,开发者...
标题“SavePPT2Txt2 及源码”所涉及的知识点主要集中在使用VC6(Visual C++ 6.0)开发的一个工具上,该工具能够读取并提取PowerPoint文件的内容,即使这些文件可能已经通过RMS(Rights Management Services,权利...
5. **存储管理**:讨论如何使用Record Management System (RMS) 存储应用程序的数据。 6. **设备兼容性**:提供指导,确保程序能在不同J2ME支持的设备上运行,包括处理不同屏幕尺寸和输入设备的方法。 7. **调试和...
2. **用户界面(UI)设计**:J2ME通常使用WTK(Wireless Toolkit)或其他开发工具来创建UI,使用Canvas或LWUIT(Lightweight User Interface Toolkit)类创建自定义的图形界面。phonebook应用可能使用了MIDP提供的...
5. **数据存储**:MIDP提供了一种称为Record Management System (RMS) 的简单数据存储机制,学习如何使用RMS存储应用数据。 6. **网络通信**:MIDP的WMA允许开发者实现短信服务和连接到互联网,掌握如何使用这些...
5. **RMS使用**:创建一个应用,使用RMS存储和检索数据。 6. **优化和调试**:学习如何优化代码以适应有限的资源,同时掌握J2ME应用的调试技巧。 本教程“J2ME中文教程 Free”将深入讲解这些概念,并提供实例代码...
在J2ME中,我们可以使用Vector或ArrayList来存储联系人对象,然后实现搜索算法来定位匹配项。 3. **删除联系人**:用户可以选择删除一个或多个联系人。这需要对存储结构进行操作,找到要删除的联系人并移除。同时,...