📄 rmsdemo.java
字号:
package rms;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.InvalidRecordIDException;
import javax.microedition.rms.RecordEnumeration;
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 RmsDemo extends MIDlet {
private static final String RECORD_STORE_NAME = "world";
private static final String CONTENT = "content";
private int index;
private int imageIndex;
private RecordStore recordStore;
private Form form;
public RmsDemo() {
form = new Form("RMS Demo");
try {
recordStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true);
} catch (RecordStoreFullException e) {
e.printStackTrace();
} catch (RecordStoreNotFoundException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
Display.getDisplay(this).setCurrent(form);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
//basicOperation();
//saveImage("/kid.png");
//readImage(imageIndex);
saveAccount();
readAccount();
delete();
}
private void delete() {
close();
try {
RecordStore.deleteRecordStore(RECORD_STORE_NAME);
} catch (RecordStoreNotFoundException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
}
private void close() {
try {
recordStore.closeRecordStore();
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
}
private void saveAccount() {
Account john = new Account("john", "83209999", "15008866168", "john@yahoo.com");
Account lucy = new Account("lucy", "83206666", "15007777777", "lucy@yahoo.com");
// 保存联系人
try {
byte[] data = john.encode();
recordStore.addRecord(data, 0, data.length);
form.append("save john---------");
data = lucy.encode();
recordStore.addRecord(data, 0, data.length);
form.append("save lucy----------");
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
} catch (RecordStoreFullException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
}
private void readAccount() {
try {
RecordEnumeration re = recordStore.enumerateRecords(null, null, false);
while(re.hasNextElement()) {
byte[] data = re.nextRecord();
Account account = Account.decode(data);
form.append("name: " + account.getName() + "------");
form.append("tel: " + account.getTel());
form.append("mobile tel: " + account.getMobileTel());
form.append("email: " + account.getEmail());
}
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
} catch (InvalidRecordIDException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
}
public void saveImage(String url) {
// 把图片资源读入到byte[]数组
byte[] data = new byte[100416];
InputStream is = getClass().getResourceAsStream(url);
try {
is.read(data);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
// 把data[]存到RMS数据库里面
try {
imageIndex = recordStore.addRecord(data, 0, data.length);
form.append("Save a picture......");
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
} catch (RecordStoreFullException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
}
public void readImage(int recordID) {
try {
// 从数据库获取图片数据
byte[] data = recordStore.getRecord(recordID);
form.append("Read a picture");
// 根据图片数据创建图片
ByteArrayInputStream bis = new ByteArrayInputStream(data);
Image img = Image.createImage(bis);
// 显示图片
form.append(img);
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
} catch (InvalidRecordIDException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void basicOperation() {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
try {
dos.writeUTF(CONTENT);
} catch (IOException e) {
e.printStackTrace();
}
byte[] result = bos.toByteArray();
try {
index = recordStore.addRecord(result, 0, result.length);
form.append("add a record of " + index);
} catch (RecordStoreNotOpenException e) {
e.printStackTrace();
} catch (RecordStoreFullException e) {
e.printStackTrace();
} catch (RecordStoreException e) {
e.printStackTrace();
}
try {
bos.close();
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -