⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serializemidlet.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 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 + -