📄 segmenterutils.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 + -