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

📄 rmsdemo.java

📁 J2ME的源码!我以前学习J2ME的源码哈!非常适合初学者
💻 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 + -