`

J2me 入门路之---3 RecordStore

    博客分类:
  • J2ME
阅读更多
package com.sa.demo.rs; 

import javax.microedition.lcdui.Command; 
import javax.microedition.lcdui.CommandListener; 
import javax.microedition.lcdui.Display; 
import javax.microedition.lcdui.Displayable; 
import javax.microedition.lcdui.TextBox; 
import javax.microedition.lcdui.TextField; 
import javax.microedition.midlet.MIDlet; 
import javax.microedition.midlet.MIDletStateChangeException; 
import javax.microedition.rms.RecordStore; 
import javax.microedition.rms.RecordStoreException; 
import javax.microedition.rms.RecordStoreFullException; 
import javax.microedition.rms.RecordStoreNotFoundException; 
import javax.microedition.rms.RecordStoreNotOpenException; 

public class TestRS2 extends MIDlet implements CommandListener { 
private Command exitCommand, addCmd, delCmd, setCmd, getCmd; 
private Display display; 
private RecordStore rs; // 定义记录存储rs 
private TextBox showMsg; // 用于显示操作结果信息 
private String msg = ""; // 存放用于文本框显示的信息 

public TestRS2() { 

display = Display.getDisplay(this); 
showMsg = new TextBox("操作信息:", null, 512, TextField.ANY); 
exitCommand = new Command("退出", Command.EXIT, 1); 
addCmd = new Command("添加记录", Command.SCREEN, 1); 
delCmd = new Command("删除记录", Command.SCREEN, 1); 
setCmd = new Command("修改记录", Command.SCREEN, 1); 
getCmd = new Command("读取记录", Command.SCREEN, 1); 
showMsg.addCommand(exitCommand); 
showMsg.addCommand(addCmd); 
showMsg.addCommand(delCmd); 
showMsg.addCommand(setCmd); 
showMsg.addCommand(getCmd); 
showMsg.setCommandListener(this); 
if (OpenRS("myRS")) 
msg += "记录存储myRS打开成功"; 
else 
msg += "记录存储myRS打开失败"; 
} 

private boolean OpenRS(String rsName) { 
// TODO Auto-generated method stub 
try { 
rs = RecordStore.openRecordStore("rsName", true); 
return true; 
} catch (RecordStoreFullException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
return false; 
} catch (RecordStoreNotFoundException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
return false; 
} catch (RecordStoreException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
return false; 
} 

} 

protected void destroyApp(boolean arg0) throws MIDletStateChangeException { 
// TODO Auto-generated method stub 
if (CloseRS()) 
System.out.println("记录存储myRS关闭成功"); 
else 
System.out.println("记录存储myRS关闭失败"); 
} 

private boolean CloseRS() { 
// TODO Auto-generated method stub 
return false; 
} 

protected void pauseApp() { 
// TODO Auto-generated method stub 

} 

protected void startApp() throws MIDletStateChangeException { 
// TODO Auto-generated method stub 
showMsg.setString(msg); 
display.setCurrent(showMsg); 
} 

public void commandAction(Command c,Displayable d) { 
int recId; 
if (c == exitCommand) { 
try { 
destroyApp(false); 
} catch (MIDletStateChangeException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
notifyDestroyed(); 
} 
else if (c == addCmd) { 
if ((recId = AddRec()) != -1) 
msg = "记录添加成功,记录号为 " + recId; 
else 
msg = "记录添加失败"; 
showMsg.setString(msg); 
} 
else if (c == delCmd) { 
if ((recId = DelRec()) != -1) 
msg = "记录删除成功,记录号为 " + recId; 
else 
msg = "记录删除失败"; 
showMsg.setString(msg); 
} 
else if (c == setCmd) { 
if ((recId = SetRec()) != -1) 
msg = "记录修改成功,记录号为 " + recId; 
else 
msg = "记录修改失败"; 
showMsg.setString(msg); 
} 
else if (c == getCmd) { 
msg = GetRec(); 
showMsg.setString(msg); 
} 
} 

public int DelRec() { 
int id, num; 
try { 
id = rs.getNextRecordID(); 
num = rs.getNumRecords(); 
} 
catch (RecordStoreException e) { 
        return -1;
} 
if (num >0) { 
for (int i=id-1; i>0; i--) { 
try { 
rs.deleteRecord(i); 
return i; 
} 
catch (RecordStoreException e) { } 
} 
} 
        return -1; 
    } 

private int AddRec() { 
// TODO Auto-generated method stub 
int id = -1; 
int recID = -1; 
try { 
id = rs.getNextRecordID();//添加记录 返回记录的位置 

} catch (RecordStoreNotOpenException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} catch (RecordStoreException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
String data = "Data of Record :"+id; 
byte[] rec = data.getBytes(); 
try { 
recID = rs.addRecord(rec, 0, rec.length);//插入数据。 

} catch (RecordStoreNotOpenException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} catch (RecordStoreFullException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} catch (RecordStoreException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
return recID ; 
} 
public int SetRec() { 
int id, num; 
try { 
id = rs.getNextRecordID(); 
num = rs.getNumRecords(); 
} 
catch (Exception e) { 
        return -1;
} 
        String rec; 
byte [] data; 
if (num >0) { 
for (int i=id-1; i>0; i--) { 
rec = "Modified Data of Record " + i; 
data = rec.getBytes(); 
try { 
rs.setRecord(i, data, 0, data.length); 
return i; 
} 
catch (RecordStoreException e) { } 
} 
} 
        return -1; 
    } 
    // 显示所有记录 
    public String GetRec() { 
int id, num; 
try { 
id = rs.getNextRecordID(); 
num = rs.getNumRecords(); 
} 
catch (RecordStoreException e) { 
        return null;
} 
        String rec = "记录存储中共有" + num + "条记录:"; 
byte [] data = null; 
if (num >0) { 
for (int i=1; i<id; i++) { 
try { 
int size = rs.getRecordSize(i); 
if (data == null || data.length < size) { 
data = new byte[size]; 
} 
rs.getRecord(i, data, 0); 
rec += "\n" + new String(data,0,size); 
} 
catch (RecordStoreException e) { 
} 
} 
} 
        return rec; 
    } 
// 打开(创建)记录存储 
} 
 
分享到:
评论

相关推荐

    J2ME-java手机PDA程序设计入门-王森

    《J2ME-java手机PDA程序设计入门-王森》这本书是针对初学者的一本教程,旨在引导读者快速掌握在Java平台上开发移动设备应用程序的基本技能。J2ME,全称Java Micro Edition,是Java平台的一个子集,专门用于资源有限...

    J2ME入门最基础的资料,一看即会噢...

    总的来说,"J2ME入门最基础的资料"将引导初学者逐步理解J2ME的结构、API、开发流程和实践技巧,为后续深入学习和开发打下坚实基础。通过详细阅读和实践提供的资料,你将能够快速入门J2ME,开发出自己的第一个MIDlet...

    j2me入门教程j2me入门教程j2me入门教程

    RecordStore是J2ME中用于持久化数据的主要机制,允许在设备上存储键值对。它不是关系型数据库,但适用于小规模的数据存储需求。 十、打包与部署 完成开发后,J2ME应用被打包成JAR文件,通过jad文件(包含应用描述和...

    J2ME 开发入门课件

    **J2ME 开发入门课件** Java Micro Edition(J2ME)是Java技术的一个重要分支,主要用于嵌入式设备和移动设备的开发,如手机、智能家电等。本课件是一套完整的J2ME开发入门教程,包含了从基础知识到实践应用的全...

    J2ME手机入门教程

    **J2ME手机入门教程** Java 2 Micro Edition(J2ME)是Java平台的一个重要分支,主要用于开发在小型设备上运行的应用程序,如移动电话、PDA、智能电视等。J2ME提供了丰富的功能,使得开发者能够创建具有交互性和...

    j2ME手机游戏编程入门

    **Java 2 Micro Edition (J2ME) 手机游戏编程入门** J2ME是Java平台的一个子集,专门设计用于资源有限的设备,如早期的智能手机和移动设备。它是开发移动应用程序,尤其是游戏的常见选择,因为它具有跨平台兼容性、...

    J2ME手机开发入门源码 J2ME

    **J2ME手机开发入门源码详解** Java 2 Micro Edition(J2ME)是Java技术的一个重要分支,主要用于嵌入式系统,如移动设备、智能家电等。它提供了跨平台的能力,使得开发者可以编写一次代码,到处运行。在本文中,...

    J2ME手机开发入门

    《J2ME手机开发入门》是一本针对初学者的指南,旨在帮助读者快速掌握Java Micro Edition(J2ME)在移动设备上的应用开发技术。J2ME是Java平台的一个子集,专门设计用于资源有限的嵌入式设备,如早期的智能手机和平板...

    j2me手机游戏编程入门 示例

    在移动设备领域,Java 2 Micro Edition(J2ME)是一种广泛用于开发手机游戏和应用程序的平台。本教程“J2ME手机游戏...在每个示例中,你都可以学习到如何将这些概念应用到实际项目中,从而开启你的J2ME游戏编程之旅。

    j2me手机程序入门 源代码

    **J2ME手机程序入门源代码详解** ...总的来说,J2ME为移动设备开发提供了强大的工具和API,通过深入理解和实践“j2me手机程序入门源码”,你可以快速掌握移动开发的基本技能,开启你的J2ME编程之旅。

    J2me手机游戏编程入门

    本篇文章将深入探讨J2ME手机游戏编程的基础知识,帮助初学者入门。 首先,我们需要了解J2ME的架构。J2ME由两部分组成:配置(Configurations)和Profile(Profiles)。配置定义了设备的基本硬件和软件能力,比如...

    J2ME小游戏的源码

    **J2ME游戏源码详解** Java Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式设备和移动设备,如早期的智能手机和平板电脑。...同时,这些源码也可以作为教学材料,帮助初学者快速入门J2ME游戏开发。

    netBeans J2ME PDA 手机 编程入门

    标题中的“netBeans J2ME PDA 手机 编程入门”指的是使用NetBeans集成开发环境(IDE)进行Java Micro Edition(J2ME)的编程,以开发针对PDA(个人数字助手)和手机的应用程序。这是一门面向初学者的教程,旨在帮助...

    J2ME手机游戏编程入门

    J2ME提供了RecordStore API来存储小量数据,例如游戏得分或用户设置。对于大量数据,可以考虑使用文件流或远程服务器。 8. **网络通信** MIDP的Connection API允许应用程序访问HTTP、WAP和TCP/IP网络。这使得游戏...

    J2ME学习资料打包下载

    本压缩包包含了丰富的J2ME学习资源,包括游戏开发和中文教程,对于想要入门或提升J2ME编程技能的开发者来说极具价值。 "j2me游戏开发.rar":这个文件很可能是一个关于J2ME游戏开发的教程或实例集合。J2ME的游戏开发...

    J2ME手机游戏编程入门源代码

    总的来说,通过分析这个J2ME手机游戏编程的源代码,你不仅可以学习到J2ME平台的基础知识,还能掌握游戏开发中的核心概念和技术,从而为自己的游戏开发之路打下坚实的基础。这是一个很好的实践平台,可以让你在实践中...

    很适合于j2me初学者

    **J2ME初学者入门教程** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专门设计用于资源有限的设备,如移动电话、智能手表和家用电器等嵌入式系统。作为初学者,了解J2ME的基础知识至关重要,因为这将为你...

    J2me保存记录框架(封装RMS)

    这个提供的 J2ME 入门资料包含了封装好的 RMS 类,对于初学者来说,这是一个很好的起点,可以帮助他们快速理解如何在 J2ME 应用中有效地管理数据。通过分析 `src` 目录下的源代码,可以学习到具体的实现细节,并结合...

    《J2ME手机游戏编程入门》实例源代码

    《J2ME手机游戏编程入门》是一本专为初学者设计的教程,旨在引导读者进入移动游戏开发的世界,特别是使用Java 2 Micro Edition (J2ME) 技术。J2ME是Java平台的一个轻量级版本,适用于资源有限的设备,如早期的智能...

Global site tag (gtag.js) - Google Analytics