`
jimphei
  • 浏览: 39747 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

关于j2me中对象的存取操作,对象与字节的转化

DOS 
阅读更多

做j2me的,应该经常会用的类似下面这样

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;

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;

public class StoreMidlet2 extends MIDlet {
	private RecordStore rs;

	public StoreMidlet2() throws Exception {

		Custom cus = new Custom("中国人", "32451674531", 23);
		try {
			rs=RecordStore.openRecordStore("myinfo", true);
			byte[] bytes=cus.objectToByteArray();
			rs.addRecord(bytes, 0, bytes.length);

			byte[] bytes2=rs.getRecord(1);
			Custom newcus=cus.byteArrayToObject(bytes2);
			System.out.println(newcus.getName());
		} 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();
		}finally{
			rs.closeRecordStore();
		}
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

	}

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

	}

	protected void startApp() throws MIDletStateChangeException {
	}



	class Custom {
		private String name;
		private String phone;
		private int age;

		/**
		 * @return the name
		 */
		public String getName() {
			return name;
		}

		/**
		 * @return the phone
		 */
		public String getPhone() {
			return phone;
		}

		/**
		 * @return the age
		 */
		public int getAge() {
			return age;
		}

		/**
		 * @param name
		 *            the name to set
		 */
		public void setName(String name) {
			this.name = name;
		}

		/**
		 * @param phone
		 *            the phone to set
		 */
		public void setPhone(String phone) {
			this.phone = phone;
		}

		/**
		 * @param age
		 *            the age to set
		 */
		public void setAge(int age) {
			this.age = age;
		}

		public Custom() {

		}

		public Custom(String n, String p, int a) {
			this.name = n;
			this.phone = p;
			this.age = a;
		}
		public byte[] objectToByteArray() throws Exception{
			ByteArrayOutputStream baos=new ByteArrayOutputStream();
			DataOutputStream dos=new DataOutputStream(baos);
			dos.writeUTF(this.name);
			dos.writeUTF(this.phone);
			dos.writeInt(this.age);
			baos.close();
			dos.close();
			return baos.toByteArray();
		}
		public Custom byteArrayToObject(byte[] bytes) throws Exception{
			ByteArrayInputStream bais=new ByteArrayInputStream(bytes);
			DataInputStream dis=new DataInputStream(bais);
			Custom cus=new Custom();
			cus.setName(dis.readUTF());
			cus.setPhone(dis.readUTF());
			cus.setAge(dis.readInt());
			dis.close();
			bais.close();
			return cus;
		}
	}
}

 的代码,不知还有没有别的方案来存取对象。

分享到:
评论

相关推荐

    j2ME 关于j2me的相关资料

    关于j2me的相关资料 ublic class Person implements KSerializable { private String _name; private String _answer; private String _userid;

    J2ME 字符型转化成字节数组

    ### J2ME 字符型转化成字节数组 #### 知识点一:J2ME简介 J2ME(Java 2 Platform, Micro Edition)是Sun Microsystems为嵌入式和移动设备设计的一种Java平台。它包括了一套适用于资源受限设备(如手机、PDA和个人...

    快速转化J2ME程序为Android程序

    《快速转化J2ME程序为Android程序》 随着Android智能手机的普及,许多开发者面临的问题是如何将原有的J2ME应用程序高效地迁移到Android平台,以利用更广泛的设备和用户基础。J2MEBuilder,一个名为android_midp.jar...

    J2ME中文版教程 J2ME教程

    3. **基础语法与编程**:教程深入讲解了J2ME中的基本数据类型、控制结构、类和对象、异常处理等Java语言基础知识,这些都是编写任何程序的基础。 4. **MIDP API详解**:MIDP是J2ME中用于创建移动应用的核心API,...

    非常好的关于j2me学习概要

    ### 非常好的关于J2ME学习概要 #### J2ME简介与学习路径 J2ME(Java 2 Platform, Micro Edition)是Sun Microsystems为嵌入式设备和移动设备设计的一种Java平台版本。本文章旨在为初学者提供一份详尽的J2ME学习...

    J2ME中文输入Demo

    在J2ME中,开发人员需要处理资源有限的环境,因此,提供中文输入功能是一个挑战,因为这需要在小型设备上实现复杂的字符编码和输入法。 本"J2ME中文输入Demo"旨在为开发者展示如何在J2ME环境中实现基本的中文输入...

    J2ME屏幕对象及小游戏实验源代码

    在J2ME中,屏幕对象主要指的是 MIDlet 的显示界面,也就是用户与应用程序交互的地方。J2ME提供了一个图形用户界面(GUI)框架,称为MIDP(Mobile Information Device Profile)。在这个框架中,有两个主要的屏幕概念...

    关于J2ME中RMS的使用解析

    为了与 RMS 进行交互,`Appointment` 类提供了两个构造函数,一个用于创建新的记录,另一个用于从字节数组中恢复记录。`toBytes()` 方法用于将 `Appointment` 对象转换为字节数组,便于写入 RecordStore,而 `...

    J2ME中程序优化的十个小方法

    1. **合理使用数据结构**:J2ME中的数据结构如ArrayList和Vector在内存管理上不如Java SE高效。考虑使用数组代替ArrayList,避免动态扩容带来的性能开销。对于小规模的数据存储,可以考虑使用哈希表或者简单的数组...

    J2ME中文教程,J2ME手机程序开发

    本教程将深入讲解J2ME在手机程序开发中的应用,帮助开发者掌握这一核心技术。 ### J2ME技术概述 J2ME由两大部分构成:配置(Configurations)和框架(Profiles)。配置定义了运行时环境的基本特性,如内存大小和...

    j2me 数据库 不支持sql语句

    - SQL数据库:基于表格结构,采用结构化查询语言(SQL)进行数据操作,需将对象转化为表格形式存储。 2. **Perst的主要特性** - 面向对象:Perst允许直接存储Java类实例,无需定义表结构或映射关系。 - 内存管理...

    J2ME中文教程.pdf

    J2ME中文教程 不错的学习资料,刚开始学习的可以参考下!

    J2ME中文开发教程(附带Myeclipse用J2ME插件)

    在J2ME开发中,你将接触到KVM(K Virtual Machine),这是J2ME的虚拟机,用于运行Java字节码。MIDP API则提供了用户界面、网络连接、数据存储等基本功能,使得开发者可以创建丰富的移动应用程序。 Myeclipse是一款...

    J2ME 中文api以及应用 J2ME 中文api以及应用.rar

    6. **J2ME本地接口(JSR-120)**:允许J2ME应用与设备的硬件特性进行交互,如摄像头、GPS等。 在**J2ME_中文api.CHM**文件中,很可能是对J2ME API的中文文档,方便中国开发者查阅和理解。这类文档通常会详细介绍每...

    J2ME中文教程

    在J2ME中,RecordStore是用于存储非结构化数据的主要机制。开发者可以创建、读取、更新和删除RecordStore中的记录。此外,FileConnection API允许开发者访问设备的文件系统,进行文件的读写操作。 **游戏开发** ...

    j2me 中文api (html)

    中文API文档的出现,极大地便利了中国及亚洲地区的开发者,使他们能够更直观地理解J2ME的各项功能与API调用方式,从而提高开发效率,减少因语言障碍导致的理解偏差。此外,中文API文档还详细解释了各种类、方法、...

    j2me移植到android的代码封装

    在封装时,我们需要设计一个适配器类,将J2ME的记录存取操作转换为Android的数据库操作。 最后,`Sprite`类在J2ME中通常用于游戏开发中的动画和精灵处理。在Android中,我们可以使用`ImageView`或自定义的`View`类...

    J2me中任意角度图片旋转

    5. **直接得到Image对象**:在J2ME中,可以使用`Image.createRGBImage`(midp2.0)或特定方法(NokiaUI)创建新的Image对象。 6. **处理小数运算**:在CLDC1.0设备上,可能不支持浮点数运算,需要将旋转角度转换为...

    J2ME中RMS存储工具使用解析

    总结来说,RMS是J2ME中存储数据的重要工具,通过理解单一记录的构造以及RecordStore的操作,开发者能够有效地管理应用程序的数据存储,实现游戏状态的保存、用户数据的持久化等功能。正确地使用RMS是开发J2ME应用不...

Global site tag (gtag.js) - Google Analytics