张生工作室

一切皆有可能

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  24 随笔 :: 3 文章 :: 11 评论 :: 0 Trackbacks

 

/*
 * ComplexFind.java
 *
 * Created on 2007年9月10日, 下午8:31
 
*/


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordFilter;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;

/**
 *
 * 
@author  Administrator
 * 
@version
 
*/

public class ComplexFind extends MIDlet implements javax.microedition.lcdui.CommandListener {
    
    
private Display display;
    
private Form form;
    
private Alert alert;
    
private Command exit;
    
private Command start;
    
private RecordStore recordstore =null;
    
private RecordEnumeration recordenumeration=null;

    
private Filter filter;
    
public ComplexFind()
    
{
        display 
=Display.getDisplay(this);
        exit
=new Command("Exit",Command.SCREEN,1);
        start
=new Command("Start",Command.SCREEN,1);
        form
=new Form("查询复杂数据");
        form.addCommand(exit);
        form.addCommand(start);
        form.setCommandListener(
this);
    }

    
    
    
    
public void startApp() {
        display.setCurrent(form);
    }

    
    
public void pauseApp() {
    }

    
    
public void destroyApp(boolean unconditional) {
    }


    
public void commandAction(Command command, Displayable displayable) {
        
if(command==exit)
        
{
            destroyApp(
false);
            notifyDestroyed();
        }

        
else if(command==start)
        
{
                
try {
                    recordstore
=RecordStore.openRecordStore("myRecordStore",true);
                }
 catch (RecordStoreException ex) {
                    alert
=new Alert("Error",ex.toString(),null,AlertType.WARNING);
                    ex.printStackTrace();
                }

                
                
try
                
{
                        
byte[] outputRecord=null;
                       String[] outputString
={"Adam","张生工作室","Mary","你好","张三","有鬼魂"};
                       
int outputInteger[]={15,10,5,78,23,32};
                       ByteArrayOutputStream outputStream
=new ByteArrayOutputStream();
                       DataOutputStream outputDataStream
=new DataOutputStream(outputStream);
                       
for(int i=0 ; i<outputString.length;i++)
                       
{
                           outputDataStream.writeUTF(outputString[i]);
                           outputDataStream.writeInt(outputInteger[i]);
                           
                           outputDataStream.flush();
                           outputRecord
=outputStream.toByteArray();
                           recordstore.addRecord(outputRecord,
0,outputRecord.length);
                           outputStream.reset();
                       }

                       outputStream.close();
                       outputDataStream.close();
                }

                
catch(Exception e)
                
{
                    alert
=new Alert("Error",e.toString(),null,AlertType.ERROR);
                }

                
                
try
                
{
                    String inputString;
                    
byte[] byteInputData=new byte[300];
                    ByteArrayInputStream inputStream
=new ByteArrayInputStream(byteInputData);
                    DataInputStream inputDataStream
=new DataInputStream(inputStream);
                    
if(recordstore.getNumRecords()>0)
                    
{
                        filter
=new Filter("");
                        recordenumeration
=recordstore.enumerateRecords(filter,null,false);
                        
while(this.recordenumeration.hasNextElement())
                            
                        
{
                            recordstore.getRecord(
this.recordenumeration.nextRecordId(),byteInputData,0);
                            inputString
=inputDataStream.readUTF()+" "+inputDataStream.readInt();
                            alert
=new Alert("Reading",inputString,null,AlertType.WARNING);
                            alert.setTimeout(Alert.FOREVER);
                            display.setCurrent(alert);
                        }

                        inputStream.close();


                    }

                }

                
catch(Exception e)
                
{
                    
                }

                
try
                
{
                    
this.recordstore.closeRecordStore();
                }

                
catch(Exception e)
                
{
                    
                }
 
                
if(this.recordstore.listRecordStores()!=null)
                
try
                
{
                  RecordStore.deleteRecordStore(
"myRecordStore");
                  filter.filterClose();
                  
this.recordenumeration.destroy();
                }

                
catch(Exception e)
                
{
                    
                }

               
        }

    }

    
class Filter implements RecordFilter
    
{
        
private String search=null;
        
private ByteArrayInputStream inputstream=null;
        
private DataInputStream datainputstream=null;
        
        
public Filter(String str)
        
{
            
this.search=str;
            
        }

        
public boolean matches(byte[] b) {
            
            String string
=null;
            
try
            
{
                String stra
=b.toString();
                inputstream
=new ByteArrayInputStream(b);
                datainputstream
=new DataInputStream(inputstream);
                string
=datainputstream.readUTF();
            }

            
catch(Exception e)
            
{
                
return false;
            }

            
if (string!=null&&string.indexOf(this.search)!=-1)
            
{
                
return true;
            }

            
else
                
return false;
            
           
            
        }

        
public void filterClose()
        
{
            
try
            
{
                
if (inputstream!=null)
                
{
                    inputstream.close();
                }

                
if(datainputstream!=null)
                
{
                    datainputstream.close();
                }

            }

            
catch(Exception e)
            
{
            }

        }

        
        
        
    }

}



张生工作室
posted on 2007-09-10 22:22 张生工作室 阅读(403) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: