?? serializemidlet.java
字號:
package com.j2medev.chapter3;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
public class SerializeMIDlet extends MIDlet {
private Display display = null;
private Account account = null;
private RecordStore rs = null;
private boolean empty = true;
public SerializeMIDlet(){
try{
rs = RecordStore.openRecordStore("account",true);
if(rs.getNumRecords()>0){
empty = false;
}
}catch(RecordStoreException ex){
ex.printStackTrace();
}
}
public void startApp(){
if(display == null){
display = Display.getDisplay(this);
Form form = new Form("serialize");
try{
if(empty){
initRMS();
}
Account a = getFromRMS();
initForm(form,a);
display.setCurrent(form);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
private void initForm(Form form,Account account){
form.deleteAll();
form.append(account.id+"\n");
form.append(account.name+"\n");
byte[] pic = account.picture;
Image img = Image.createImage(pic,0,pic.length);
form.append(img);
form.append("\n");
form.append(account.info.age+"\n");
form.append(account.info.description+"\n");
}
private void initRMS() throws IOException,RecordStoreException{
InputStream is = getClass().getResourceAsStream("/city.png");
byte[] picture = null;
if(is != null){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length = -1;
while((length = is.read(buffer))!=-1){
baos.write(buffer,0,length);
}
picture = baos.toByteArray();
baos.close();
}
Account account = new Account();
account.id = 1;
account.name= "mingjava";
account.picture = picture;
account.info = new CustomInfo(27,"He likes Java ME");
ByteArrayOutputStream b = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(b);
account.serialize(dos);
byte[] data = b.toByteArray();
rs.addRecord(data,0,data.length);
dos.close();
}
private Account getFromRMS() throws IOException,RecordStoreException{
RecordEnumeration re = rs.enumerateRecords(null,null,false);
if(re.numRecords()>0){
byte[] data = re.nextRecord();
ByteArrayInputStream bis = new ByteArrayInputStream(data);
DataInputStream dis = new DataInputStream(bis);
return Account.deserialize(dis);
}
return null;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -