首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>Java基础>正文

J2ME综合--谈谈J2ME的几个重要的功能

http://www.oklinux.cn  2008-01-20  来源: 赛迪网 andony756  会员收藏  游客收藏  【 】 

MIDP提供在移动设备上存储持久数据的支持,并且 MID简表还特意规定兼容的移动设备必须提供至少 8KB的非动态内存用于数据存储的用途,时式上,大多数的 MIDP Java设备提供的空间比这要求多得多。这就答应一个midlet充份利用应用程序的持久数据。对于有 Java 2标准版开发经验的开发者,应该注重这种数据存储能力与标准的 Java有区别。J2ME记录治理系统 ( RMS )答应数据流被储存并且在一个记录基础上访问数据。由应用程序开发者把每个记录解析到字段水平。RMS程序包内部的接口支持一个应用程序定义的基础上的比较与检索功能。

  一、javax.microedition.rms程序包

  通过 javax.microedition.rms包访问 J2ME记录治理系统,这个包包括一个类, RecordStore,和好几个有用的接口 (在下列表格中描述 ):
接口 描述
RecordComparator 一个接口,定义一个比较机制,比较两个记录(以一个实现定义的方式)看它们是否匹配或它们的相对排序次序是什么样的。
RecordEnumeration 一个接口,一个双向的纪录模拟器
RecordFilter 一个接口,定义了一个过滤器用于检查一个记录,看其是否匹配 (基于一种应用程序定义的标准 )。
RecordListener 一个监听者接口,从一个记录存储器中接受记录更改/添加/删除事件。

  这些接口对于实现自定义搜索和检索功能很有用,这些接口中使用的最多的就是 RecordEnumeration。这个接口从 RecordStore.enumerateRecords()方法调用中返回并且被用于遍历一组从记录存储器中返回的记录。它包含 nextRecord()、 previousRecord()、 numRecords()和 hasNextElement()等方法。

  二、使用RecordStore类访问记录存储

  RecordStore类是开发者开发基层 RMS的接口,记录储存是在一个平台--midlet环境依靠的方式--上创建的。信息的实际的位置和存储细节应用程序开发者其实并不知道,记录存储可以使用一种简单的命名规则来访问:名称最多可以到32个Unicode字符长度,区分大小写和必须在一个 midlet套件内唯一。在一个 midlet套件内的所有 midlet都有读/写一个记录存储的权限,只要它们知道正确的名称。一旦这个 midlet套件被从该设备上删除,所有与这个套件关联的记录存储也将被删除。

  比如说,为了打开一个名为 TestRecordSet的记录存储,你可以调用 RecordStore.openRecordStore()方法。这个方法使用两个参数:一个字符串,表示记录存储的名称;一个布尔值,假如为真的话,就会在纪录存储不存在时创建一个。我们使下列方法调用创建新的 TestRecordSet记录存储:
RecordStore rs = null;
rs = RecordStore.openRecordStore("TestRecordSet", true);

  记录存储被创建好后,我们可以通过调用 RecordStore.addRecord()方法来向这个记录存储添加数据。addRecord()接受三个参数:
参数 描述
byte[] data 一个储存在记录中的字节数据数组,通过 java.io.ByteArrayOutputStream和 java.io.DataOutputStream类把数据添加到这个字节数组。
int offset 进入这个记录第一个关联字节数据缓冲区的索引。
int numBytes 用于记录的数据缓冲区的字节数

  一旦成功完成 addRecord()调用 ,这个方法就返回一个整数指定这个记录在记录存储中的标识号。 RecordStore还规定另外一个数据编辑方法,包括 setRecord()和 deleteRecord(),但是我在例子中不会使用它们。

  三、构建一个用于J2ME设备的通讯录

  这个例子构造一个基本的通讯录应用程序,使用它用户就可以从一个移动设备上查看联络资料。现在我只介绍从本地设备中存储的数据中读出相关的联络资料,在本文稍后的部分,你将看到如何使用J2ME网络功能从一个 Web服务器取回数据文件!用户将能查看一个地址列表和从这个列表选择一个地址。为了实现这个目标,我们要创建两个类,从用户界面逻辑中把数据存取逻辑分开的: AddressDB类封装所有的 RMS代码; AddressBookMIDLet类封装 GUI代码。AddressDB类的代码如下:
import javax.microedition.rms.*;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
public class AddressDB {
private static RecordStore rs = null;
public AddressDB() {
try {
rs = RecordStore.openRecordStore("addressbook", true);
}
catch (RecordStoreException e) {
System.out.println(e);
e.printStackTrace();
}
}
public void addAddress(String Name, String Address) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(os);
try {
output.writeUTF(Name "," Address);
}
catch (IOException e) {
System.out.println(e);
e.printStackTrace();
}
byte[] b = os.toByteArray();
try {
rs.addRecord(b, 0, b.length);
}
catch (RecordStoreException e) {
System.out.println(e);
e.printStackTrace();
}
}
public static String getName(int index) {
int counter = 1;
int commalocation = 0;
String name = null;
try {
RecordEnumeration enumRec =
rs.enumerateRecords(null, null, false);
while ((counter < = index) && (enumRec.hasNextElement())) {
String strTemp = new String(enumRec.nextRecord());

共3页: 上一页 1 [2] [3] 下一页

上一篇:基于AJAX的动态树型结构的设计与实现   下一篇:J2SE综合:浅析Java语言中两种异常的差别


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·J2SE综合:浅析Java语言中两种异常的差别
·基于AJAX的动态树型结构的设计与实现
·I/O及网络--一个简单的文件传送代码
·J2ME综合--J2ME应用程序内存优化三招
·I/O及网络--MD5加密及Java的实现方式
·J2SE综合介绍:与你一起讨论AJAX进一阶应用
·J2ME综合--JAR文件包及jar命令详解
·浅析Spring2.0中新的Bean类型实现原理
·数据库相关:小结Hibernate的查询方式
·高级:使用异步Servlet扩展AJAX应用程序
·Java GUI:Java布局管理器使用方法探讨
·高级:Cookie,httpsession类使用概述
·J2SE综合--区分eclipse中的两种JRE
·服务器及中间件:JBoss4.0数据源配置大全
·J2SE综合--java通过JNI与delphi交互
·通过Hibernate_tool生成代码和映射文件
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Java入门:状态对象--数据库的替代者
·Java语言怎样调用外部应用程序
·Java语言深入--关于Java语言的内存泄漏
·JSP/Servlet/JSF:Servlet/JSP配置详解
·进阶-怎样使用AJAX进行WEB应用程序开发
·基础:J2ME程序开发之新手入门九大要点
·Java入门--Java语言接口与继承的本质
·JAVA进阶--如何提升JSP应用程序的效率
·对Java中四种XML解析技术之不完全测试
·编写高级 JScript应用代码
·JSP/Servlet/JSF--对标签库的深入研究
·Java入门--关于字符串分割的两种方法
  阅读排行
·使用AJAX技术实现网页无闪自动局部刷新
·快速教您Apache Tomcat SSL的配置
·Java语言深入--java调用C/C 的过程
·用JSP JavaScript打造二级级联下拉菜单
·JAVA进阶--线程运行栈信息的获取讲解
·J2SE综合--JAVA实现把汉字转化成拼音
·使用WEBWORK实现文件上传方法实例详解
·一个非常有趣的使用spring框架AOP例子
·关于java中相对路径,绝对路径问题总结
·高级:lucene全文检索应用示例及代码简
·详细讲解Struts构架中action的跳转大全
·在Weblogic上配置JMS服务的方法
·Hibernate配置文件中的映射元素详解
·对Java中四种XML解析技术之不完全测试
·在JSP环境中配置使用fckeditor详细讲解
网摘收藏: