做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的相关资料 ublic class Person implements KSerializable { private String _name; private String _answer; private String _userid;
### J2ME 字符型转化成字节数组 #### 知识点一:J2ME简介 J2ME(Java 2 Platform, Micro Edition)是Sun Microsystems为嵌入式和移动设备设计的一种Java平台。它包括了一套适用于资源受限设备(如手机、PDA和个人...
《快速转化J2ME程序为Android程序》 随着Android智能手机的普及,许多开发者面临的问题是如何将原有的J2ME应用程序高效地迁移到Android平台,以利用更广泛的设备和用户基础。J2MEBuilder,一个名为android_midp.jar...
3. **基础语法与编程**:教程深入讲解了J2ME中的基本数据类型、控制结构、类和对象、异常处理等Java语言基础知识,这些都是编写任何程序的基础。 4. **MIDP API详解**:MIDP是J2ME中用于创建移动应用的核心API,...
### 非常好的关于J2ME学习概要 #### J2ME简介与学习路径 J2ME(Java 2 Platform, Micro Edition)是Sun Microsystems为嵌入式设备和移动设备设计的一种Java平台版本。本文章旨在为初学者提供一份详尽的J2ME学习...
在J2ME中,屏幕对象主要指的是 MIDlet 的显示界面,也就是用户与应用程序交互的地方。J2ME提供了一个图形用户界面(GUI)框架,称为MIDP(Mobile Information Device Profile)。在这个框架中,有两个主要的屏幕概念...
为了与 RMS 进行交互,`Appointment` 类提供了两个构造函数,一个用于创建新的记录,另一个用于从字节数组中恢复记录。`toBytes()` 方法用于将 `Appointment` 对象转换为字节数组,便于写入 RecordStore,而 `...
1. **合理使用数据结构**:J2ME中的数据结构如ArrayList和Vector在内存管理上不如Java SE高效。考虑使用数组代替ArrayList,避免动态扩容带来的性能开销。对于小规模的数据存储,可以考虑使用哈希表或者简单的数组...
本教程将深入讲解J2ME在手机程序开发中的应用,帮助开发者掌握这一核心技术。 ### J2ME技术概述 J2ME由两大部分构成:配置(Configurations)和框架(Profiles)。配置定义了运行时环境的基本特性,如内存大小和...
- SQL数据库:基于表格结构,采用结构化查询语言(SQL)进行数据操作,需将对象转化为表格形式存储。 2. **Perst的主要特性** - 面向对象:Perst允许直接存储Java类实例,无需定义表结构或映射关系。 - 内存管理...
J2ME中文教程 不错的学习资料,刚开始学习的可以参考下!
在J2ME开发中,你将接触到KVM(K Virtual Machine),这是J2ME的虚拟机,用于运行Java字节码。MIDP API则提供了用户界面、网络连接、数据存储等基本功能,使得开发者可以创建丰富的移动应用程序。 Myeclipse是一款...
6. **J2ME本地接口(JSR-120)**:允许J2ME应用与设备的硬件特性进行交互,如摄像头、GPS等。 在**J2ME_中文api.CHM**文件中,很可能是对J2ME API的中文文档,方便中国开发者查阅和理解。这类文档通常会详细介绍每...
在J2ME中,RecordStore是用于存储非结构化数据的主要机制。开发者可以创建、读取、更新和删除RecordStore中的记录。此外,FileConnection API允许开发者访问设备的文件系统,进行文件的读写操作。 **游戏开发** ...
中文API文档的出现,极大地便利了中国及亚洲地区的开发者,使他们能够更直观地理解J2ME的各项功能与API调用方式,从而提高开发效率,减少因语言障碍导致的理解偏差。此外,中文API文档还详细解释了各种类、方法、...
在封装时,我们需要设计一个适配器类,将J2ME的记录存取操作转换为Android的数据库操作。 最后,`Sprite`类在J2ME中通常用于游戏开发中的动画和精灵处理。在Android中,我们可以使用`ImageView`或自定义的`View`类...
5. **直接得到Image对象**:在J2ME中,可以使用`Image.createRGBImage`(midp2.0)或特定方法(NokiaUI)创建新的Image对象。 6. **处理小数运算**:在CLDC1.0设备上,可能不支持浮点数运算,需要将旋转角度转换为...
总结来说,RMS是J2ME中存储数据的重要工具,通过理解单一记录的构造以及RecordStore的操作,开发者能够有效地管理应用程序的数据存储,实现游戏状态的保存、用户数据的持久化等功能。正确地使用RMS是开发J2ME应用不...
9. **设计模式**:在J2ME与JSP通信的过程中,可能会用到如命令模式(Command Pattern)来封装请求,或者工厂模式(Factory Pattern)来动态创建服务器端的处理对象。 10. **测试与调试**:对于这样的分布式系统,...