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

📄 cnword.java~53~

📁 一個手機程序(電子詞典),一個不可多得的源碼程序,是學習J2ME的好東東.
💻 JAVA~53~
字号:
package org.zblog.zenghelper.dbtool;

import java.io.DataOutputStream;
import java.io.ByteArrayInputStream;
import java.util.Vector;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.DataInputStream;

/**
 * <p>Title: ZEngHelper</p>
 *
 * <p>Description: Z英汉词典</p>
 *
 * <p>Copyright: Zcw Copyright (c) 2004</p>
 *
 * <p>Company: www.zblog.org Z动力</p>
 *
 * @author 朱传伟-ZCW
 * @version 1.0
 */
public class CnWord {
    public int rsId=-1;
    public String word=null;
    //存储EnDB库对应的Id
    public Vector enRSId=new Vector();
    public byte[]bytes=null;
    /**
     * 通过RMS中的Id进行构造,实际是为了从数据库中恢复该对象
     * @param Id int
     */
    public CnWord(int Id){
        rsId=Id;
        loadDB();
    }
    /**
     * 传递数据单词word方式构造,该方式一般用在新添加单词时用到,
     * 首先检查数据中是否已经存在该单词,有则先从数据库中恢复,
     * 然后将新的属性在添加到原有属性中
     * @param eWord String
     */
    public CnWord(String cword,WordGroup wg){
        word=cword;
        rsId=wg.searchWord(word);
        if(rsId!=-1){
            loadDB();
        }
    }

    /**
     * 添加enid关联以及属性,如果已经有存在的EnId,则忽略
     * @param cnids String
     */
    public void addEnId(String enid){
        if(!enRSId.contains(enid)){
            enRSId.addElement(enid);
        }
    }

    /**
     * 从数据库加载该EnWord对象
     */
    public void loadDB(){
        DbTool dt=DbTool.getInstance();
        formBytes(dt.getRSByte(DbTool.CN_WORD_DB,rsId));
    }

    /**
     * 将单词的属性转换成统一的byte[]格式
     * 转换CnWord的属性为byte[]格式
     * @return byte[]
     * @throws IOException
     */
    public void toBytes() throws IOException {
        try{
            ByteArrayOutputStream bos=new ByteArrayOutputStream();
            DataOutputStream dos=new DataOutputStream(bos);
            //写入word
            dos.writeUTF(word);
            //写入关联En单词的id
            int encount=enRSId.size();
            dos.writeInt(encount);
            for(int i=0;i<encount;i++)
                dos.writeUTF((String)enRSId.elementAt(i));
            //转换为byte[]
            bytes=bos.toByteArray();
            dos.close();
            bos.close();
        }catch(Exception e){
                e.printStackTrace();
        }
    }

    /**
     * 将byte[]格式还原为EnWord的属性方式
     * @param bs byte[]
     */
    public void formBytes(byte[]data){
        bytes=data;
        if(data==null||data.length==0){
            return;
        }
        try{
            ByteArrayInputStream bis = new ByteArrayInputStream(data);
            DataInputStream dis = new DataInputStream(bis);
            //读取word属性
            word=dis.readUTF();
            //读取关联EnId属性
            int encount=dis.readInt();
            enRSId.removeAllElements();
            for(int i=0;i<encount;i++)
                enRSId.addElement(dis.readUTF());
            dis.close();
            bis.close();
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -