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

📄 createdictionary.java

📁 java树型字典的建立,是中文分词 检索的基础
💻 JAVA
字号:
package ECDictionary;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.File;
import java.io.ObjectOutputStream;
import ECDictionaryUtil.AddCharacter;
import ECDictionaryUtil.ObjectHead;
public class CreateDictionary {
	/**
	 * @throws Exception 
     */
	public void createDictionaryTree(File inFile,File outFile) throws Exception {
		
		FileReader rd=new FileReader(inFile);
		BufferedReader breader=new BufferedReader(rd);
		ObjectOutputStream os = 
            new ObjectOutputStream(
                new FileOutputStream(outFile));
		try{
			String s;
			s=breader.readLine();
			boolean ff=true;
			while(true){
				//System.out.println(s);
				int i=0;
				String ss;
				AddCharacter addc=new AddCharacter();
				if(ff){
					/*
					 * 只在读取第一行时给ObjectHead赋初值,读取其他行使用ObjectHead静态变量的值。
					 */
					addc.setObjectHead(new ObjectHead());
					ff=false;
				}
				addc.setObjectStream(os);
				while(i+1<=s.length()&&(ss=s.substring(i,i+1))!=null){
					//System.out.println(ss);
					if(i==0){
						/*
						 * 当添加的汉字为词第一个汉字时
						 */
						addc.addHead(ss);
					}else if(i<s.length()-1){
						addc.addMiddleChara(ss);
					}else{
						addc.addTail(ss);
					}
     				i++;	
				}
				if((s=breader.readLine())==null){
					/*
					 * 当读取了最后一行就序列化ObjectHead并推出循环
					 */
					addc.saveCharacter();
				    break;}
				
			}
		}catch(Exception ee){
			ee.printStackTrace();
		}
		
	}

}

⌨️ 快捷键说明

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