📄 rms_ex7.java
字号:
//程序名RMS_Ex7.java,项目RMS_Ex7
//测试RMS的枚举器、过滤器和比较器
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
import java.util.Calendar;
import java.util.Date;
import java.io.*;
public class RMS_Ex7 extends MIDlet {
RecordStore rs = null;
RecordEnumeration enum;
RecordFilter dateRecordFilter;
RecordComparator dateRecordComparator;
public RMS_Ex7() {
//这个例子需要使用一个新的记录存储进行测试,所以要删除旧的文件。
try {
RecordStore.deleteRecordStore("rs_test");
} catch( Exception e ){
// ignore any errors...
}
//生成一个新的记录存储rs_test,并添加测试数据:
try {
rs = RecordStore.openRecordStore("rs_test", true );
addDateRecord(rs,2002,Calendar.DECEMBER,25);
addDateRecord(rs,2000,Calendar.OCTOBER,1);
addDateRecord(rs,1950,Calendar.SEPTEMBER,11);
addDateRecord(rs,2008,Calendar.JANUARY,11);
addDateRecord(rs,1984,Calendar.MAY,4);
//构造一个新的过滤器和比较器
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2002);
calendar.set(Calendar.MONTH,Calendar.AUGUST);
calendar.set(Calendar.DATE,3);
dateRecordFilter = new DateRecordFilter(calendar.getTime().getTime());
dateRecordComparator = new DateRecordComparator();
} catch( Exception e ){
System.out.println("error when build a test case.");
notifyDestroyed();//发生错误,关闭应用程序
}
}
public void startApp() {
try {
System.out.println("***enum = rs.enumerateRecords(null,null,false):");
enum = rs.enumerateRecords(null,null,false);
while (enum.hasNextElement()) {
printDateRecord(enum.nextRecord());
}
enum.destroy();
//测试经过过滤后的结果
System.out.println("***enum = rs.enumerateRecords(dateRecordFilter,null,false):");
enum = rs.enumerateRecords(dateRecordFilter,null,false);
while (enum.hasNextElement()) {
printDateRecord(enum.nextRecord());
}
enum.destroy();
System.out.println("***enum = rs.enumerateRecords(null,dateRecordComparator,false):");
enum = rs.enumerateRecords(null,dateRecordComparator,false);
while (enum.hasNextElement()) {
printDateRecord(enum.nextRecord());
}
enum.destroy();
System.out.println("***enum = rs.enumerateRecords(dateRecordFilter,dateRecordComparator,false):");
enum = rs.enumerateRecords(dateRecordFilter,dateRecordComparator,false);
while (enum.hasNextElement()) {
printDateRecord(enum.nextRecord());
}
enum.destroy();
} catch(RecordStoreException e ){
System.out.println("error , program exist.");
notifyDestroyed();//发生错误,关闭应用程序
}
notifyDestroyed();//运行结束即关闭应用程序
}
public void pauseApp() {
}
public void destroyApp( boolean unconditional ) {
}
public void addDateRecord(RecordStore rs, int year, int month, int date) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,year);
calendar.set(Calendar.MONTH,month);
calendar.set(Calendar.DATE,date);
try {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream (bout);
dout.writeLong(calendar.getTime().getTime());
dout.flush();
byte[] b = bout.toByteArray();
rs.addRecord(b, 0, b.length);
}catch (Exception e) {
System.out.println(e.getMessage());
System.out.println("error when add a record.");
}
}
public void printDateRecord(byte[] rec) {
try {
DataInputStream din =
new DataInputStream(
new ByteArrayInputStream(rec));
din.reset();
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date(din.readLong()));
System.out.println(calendar);
}catch (Exception e) {
System.out.println("error when print date.");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -