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

📄 segmenterutils.java

📁 一个jsp写的bbs
💻 JAVA
字号:
package org.apache.lucene.analysis.cw;

import java.io.*;

public class SegmenterUtils{
    private static segmenter mysegmenter;
    
    private SegmenterUtils(){}
    
    /**
     * sigleton class to get a segmenter
     */
    public static segmenter getSegmenter(int charform, boolean loadwordfile){
        if (mysegmenter == null){
            mysegmenter = new segmenter(charform, loadwordfile);
        }
        return mysegmenter;
    }
    
    public static segmenter getSegmenter(){
        if (mysegmenter == null){
            mysegmenter = new segmenter(segmenter.BOTH, true);
        }
        return mysegmenter;
    }
    
    public static synchronized void reset(){
        mysegmenter = null;
    }
    
    /**
     * sigleton class to get a segmenter, 
     * try to load a serialized segmenter if possible
     */
    public static segmenter getSegmenter(String segmenter_file, int charform, boolean loadwordfile) 
        throws IOException, ClassNotFoundException, ClassCastException, FileNotFoundException{
        InputStream swapdata = null;
        ObjectInputStream obj = null;
        try{
            if (mysegmenter == null){
                File swapfile = new File(segmenter_file);
                if (swapfile.exists()){
                    swapdata = new FileInputStream(swapfile);
                    obj = new ObjectInputStream(swapdata);
                    mysegmenter = (segmenter)obj.readObject();
                }else{
                    mysegmenter = getSegmenter(charform, loadwordfile);
                    saveSegmenter(segmenter_file);
                }
            }
        }finally{
            try{
                obj.close();
                swapdata.close();
            }catch(Exception e){}
        }
        return mysegmenter;
    }
    
    public static segmenter getSegmenter(String segmenter_file)
        throws IOException, ClassNotFoundException, ClassCastException, FileNotFoundException{
        return getSegmenter(segmenter_file, segmenter.BOTH, true);
    }
    
    /**
     * sigleton class to get a segmenter, 
     * try to load a serialized segmenter if possible
     */
    public static void saveSegmenter(String segmenter_file) 
        throws IOException, ClassNotFoundException, ClassCastException, FileNotFoundException{
        FileOutputStream f = null;
        ObjectOutputStream s = null;
        try{
            if (mysegmenter != null){
                File swapfile = new File(segmenter_file);
                swapfile.createNewFile();
                f = new FileOutputStream(swapfile);
                s = new ObjectOutputStream(f);
                s.writeObject(mysegmenter);
                s.flush();
            }else{
                throw new IllegalStateException("Segmenter not initialized");
            }
        }finally{
            try{
                s.close();
                f.close();
            }catch(Exception e){}
        }
    }
}

⌨️ 快捷键说明

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