`
muscle-liu
  • 浏览: 230065 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

读写RMS 的两种方法

    博客分类:
  • j2me
DOS 
阅读更多
最近在做项目中, 在客户端要创建一个RMS给服务端读取,服务端已经写好了。但因为不知道服务端是好何读取的, 而我又是一个新手,所以在网上找了许多关于读写RMS的方法。我们知道RMS的读写都是用byte[], 网上说的大部分都是用
ByteArrayOutputStream/DataOutputStream写数据,而用ByteArrayInputStream/DataInputStream 来读数据。其用法如下:

假设要把String strHello = "Hello, string!";写入RMS,写数据的代码:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(strHello);
byte[] rec = baos.toByteArray();
.......//把rec写入rms

baos.close();
dos.close();


而读数据的代码:
......
ByteArrayInputStream bais = new ByteArrayInputStream(rec);
//rec是 从rms读取出来的byte[] 类型
DataInputStream dis = new  DataInputStream(bais);
strHello = dis.readUTF();

bais.close();
dis.close();



当我用这个方法写数据入RMS,项目运行时却发现服务返回是" {Hello,string!"。一时间我不知是错在哪里(很奇怪的,在output

window里我想copy这个字符串时,是copy不了的,如果不copy ‘{’,就可以。)。

后来我看了服务器读数据时的代码才知道,服务器读数据时直接用rec.toString();返回数据的。所以我把读写数据直接用String类

的方法就可以了。

写数据的代码:
byte[] rec = strHello.getBytes();
.....


读数据:
.....
strHello = rec.toString();


所以在读写RMS时的方法要用同一类型,不然就会得到意想不到的结果...
分享到:
评论

相关推荐

    J2ME 之RMS 很基础很全面

    该方法有几种重载形式,可以指定是否创建Record Store、权限模式(如私有或公共)以及是否可写。 4. API概述 `javax.microedition.rms`包包含与RMS相关的API,如RecordStore类和其他接口,如RecordComparator、...

    关于J2ME中RMS的使用解析

    RMS 提供了一种简单的方法来存储和检索应用程序所需的数据,尤其是在资源有限的移动设备上。它类似于小型数据库,用于保存各种类型的信息,如用户设置、游戏得分或任何其他需要长期保留的数据。 RMS 的使用主要包括...

    RMS实例_JavaME

    7. **访问模式**:有只读(RecordStore.MODE_READONLY)和读写(RecordStore.MODE_READ_WRITE)两种模式。只读模式下的RecordStore不允许添加、修改或删除记录。 8. **RecordStoreListener**:可以注册监听器来监听...

    j2me入门程序j2me入门程序

    在J2ME中,应用程序主要由两种组件构成: MIDlet(移动信息设备小程序) 和 用户界面组件。MIDlet是J2ME应用程序的核心,它继承自 javax.microedition.midlet.MIDlet 类,并且必须实现startApp(), pauseApp() 和 ...

    qt导出Excel

    在"RMS_QtExcel.cpp"和"RMS_QtExcel.h"这两个文件中,可能包含了自定义的类或函数,用于封装这些操作。 1. **保护工作表**:在Excel中,保护工作表是防止未经授权的修改的一种方式。在Qt中,你可以通过QAxObject来...

    matlab音频信号的谱分析及去噪

    在音频信号处理领域,MATLAB和C++是两种常用的编程工具。MATLAB以其强大的数学运算能力和便捷的矩阵操作,常被用于快速实现各种信号处理算法,而C++则以其高效和可移植性受到青睐,特别是在实时系统和嵌入式设备中。...

    操作系统课程设计任务书(2014级计算机、软件、网络).doc

    学生需要在Linux环境下用用户级线程模拟这两种算法,根据给定的实时任务判断可调度性,并以字符Gantt图显示调度结果。 3. **存储管理** - 学生需分析和比较UNIX中的最先适应(FF)、最佳适应(BF)和最坏适应(WF)...

    j2me开发手机

    MIDP提供了Canvas和Form两种基本UI组件。Canvas允许自定义绘图,而Form则用于展示预定义的UI元素。 Jad和Jar文件是J2ME应用的打包格式,Jad文件包含了应用程序的元数据,Jar文件则包含类和资源。 **安全和权限** ...

    j2me_API速查手册

    Java 2 Micro Edition (J2ME) 是一种Java平台,专为资源有限的嵌入式设备,如移动电话、智能手表、数字电视等设计。它提供了丰富的API集合,使得开发者能够在这些小型设备上构建功能丰富的应用程序。《j2me_API速查...

    J2ME中文教程,java移动设备开发

    J2ME提供了Basic UI和Custom UI两种界面设计方式。Basic UI基于预定义的组件,如ChoiceGroup和TextBox,而Custom UI则允许开发者自定义组件,实现更复杂的交互。 **5. 网络通信** J2ME通过 Wireless Toolkit (WTK) ...

    J2me中文教程MIDP2.0

    为了满足数据持久化的需求,MIDP 2.0提供了两种存储机制:Record Management System (RMS) 和FileConnection API。RMS是一种简单的键值对存储方式,适用于小规模数据存储;而FileConnection API则支持文件的读写操作...

    J2ME中文教程

    J2ME提供两种基本的UI组件:Canvas和Form。Canvas允许开发者自定义绘图,适合创建游戏和其他需要复杂图形的应用;而Form则包含文本输入和按钮等标准组件,适用于创建简单的用户交互界面。 六、网络编程 MIDP提供了...

    TMC2208T配置.zip

    1. **选择通信方式**:TMC2208支持SPI和I2C两种通信协议。SPI通常提供更高的数据传输速率,而I2C则适合连接更多的设备。根据你的系统需求选择合适的通信方式,并确保硬件连接正确。 2. **设置电压和电流限制**:...

    Java移动通信程序设计(J2ME MIDP)范例

    1. **用户界面设计**:MIDP提供两种基本的UI组件,Canvas用于自定义图形界面,而Form则支持文本输入和按钮等标准控件。理解如何创建和管理这两类组件是创建用户友好应用的基础。 2. **MIDlet**:这是J2ME中的主程序...

    j2me的教程ppt

    J2ME的用户界面构建基于Component类,包括了Canvas和Form两种主要类型。Canvas允许自定义绘图,而Form则提供了预定义的组件,如TextBox、Choice和Item,方便快速创建用户界面。 七、网络编程 J2ME提供了...

    dsfsdfsdfsdfsdfsdfsdfs

    Java 2 Platform Micro Edition(J2ME)是Sun Microsystems为嵌入式和移动设备开发的一种Java平台。它提供了在资源有限的设备上运行应用程序的能力,并且具有高度的可移植性和兼容性。J2ME主要包括两个组件:...

    IBM主机小节

    - **MOD** 表示以下两种情况之一: - 数据集已存在,需要向其末尾添加记录(数据集必须为顺序类型)。 - 需要创建一个新数据集。 通过以上解析可以看出,本文不仅涵盖了z/OS操作系统的基础知识点,还深入介绍了...

    Java MIDP开发实例集.rar

    1. 用户界面(User Interface, UI):MIDP提供了Canvas和Form两种基本的UI组件。Canvas允许开发者自定义绘图,适合创建复杂的游戏画面。Form则用于展示文本和简单的用户输入,通常用于菜单和设置界面。 2. 用户交互...

    J2ME 常用组件介绍

    J2ME提供两种主要的数据存储方式: - **Record Management System (RMS)**: 用于在设备本地存储小量数据,如用户设置或游戏进度。 - **Persistent Store**: 提供更高级别的数据持久化功能,但不是所有J2ME设备都支持...

Global site tag (gtag.js) - Google Analytics