From 98ee5afe648fbcb61395f0844872adf5fe29ce14 Mon Sep 17 00:00:00 2001 From: magese Date: Wed, 26 Dec 2018 14:05:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BB=E5=8F=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=E6=95=88=E7=8E=87?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E8=AF=8D=E5=85=B8=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=8A=9F=E8=83=BD=EF=BC=8C#=E5=BC=80?= =?UTF-8?q?=E5=A4=B4=E7=9A=84=E8=AF=8D=E8=AF=AD=E5=B0=86=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=8A=A0=E8=BD=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/wltea/analyzer/dic/Dictionary.java | 31 ++++++++----------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/wltea/analyzer/dic/Dictionary.java b/src/main/java/org/wltea/analyzer/dic/Dictionary.java index b4991db..9623cec 100644 --- a/src/main/java/org/wltea/analyzer/dic/Dictionary.java +++ b/src/main/java/org/wltea/analyzer/dic/Dictionary.java @@ -21,16 +21,13 @@ * 版权声明 2012,乌龙茶工作室 * provided by Linliangyi and copyright 2012 by Oolong studio * - * 7.5版本 由 Magese (magese@live.cn) 更新 - * release 7.5 update by Magese(magese@live.cn) + * 7.6版本 由 Magese (magese@live.cn) 更新 + * release 7.6 update by Magese(magese@live.cn) * */ package org.wltea.analyzer.dic; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.*; import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.List; @@ -113,32 +110,30 @@ public class Dictionary { * 重新更新词典 * 由于停用词等不经常变也不建议常增加,故这里只修改动态扩展词库 * - * @param inputStreamList 词典文件IO流集合 + * @param inputStreamReaderList 词典文件IO流集合 */ - public static void reloadDic(List inputStreamList) { + public static void reloadDic(List inputStreamReaderList) { // 如果本类单例尚未实例化,则先进行初始化操作 if (singleton == null) { Configuration cfg = DefaultConfig.getInstance(); initial(cfg); } // 对词典流集合进行循环读取,将读取到的词语加载到主词典中 - for (InputStream is : inputStreamList) { + for (Reader in : inputStreamReaderList) { try { - BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8), 512); + LineNumberReader br = new LineNumberReader(in); String theWord; - do { - theWord = br.readLine(); - if (theWord != null && !"".equals(theWord.trim())) { - singleton._MainDict.fillSegment(theWord.trim().toLowerCase().toCharArray()); - } - } while (theWord != null); + while ((theWord = br.readLine()) != null) { + if (theWord.trim().length() == 0 || theWord.trim().charAt(0) == '#') continue; + singleton._MainDict.fillSegment(theWord.trim().toLowerCase().toCharArray()); + } } catch (IOException ioe) { System.err.println("Other Dictionary loading exception."); ioe.printStackTrace(); } finally { try { - if (is != null) { - is.close(); + if (in != null) { + in.close(); } } catch (IOException e) { e.printStackTrace();