From 6697ae4d417376bb4a23269ca2c67916927a46f6 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 7 Feb 2023 19:26:12 +0800 Subject: [PATCH] //test --- .../com/iformall/language/LanguageDetect.java | 57 ++++++++++++++++++- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/suimangVideo/src/main/java/com/iformall/language/LanguageDetect.java b/suimangVideo/src/main/java/com/iformall/language/LanguageDetect.java index c5d5400..1a2d4a1 100644 --- a/suimangVideo/src/main/java/com/iformall/language/LanguageDetect.java +++ b/suimangVideo/src/main/java/com/iformall/language/LanguageDetect.java @@ -4,6 +4,15 @@ import com.cybozu.labs.langdetect.Detector; import com.cybozu.labs.langdetect.DetectorFactory; import com.cybozu.labs.langdetect.LangDetectException; import lombok.extern.slf4j.Slf4j; +import lombok.var; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import sun.misc.IOUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; @Slf4j public class LanguageDetect { @@ -13,8 +22,28 @@ public class LanguageDetect { private static void initDetector(){ if(detect == null){ try { - DetectorFactory.loadProfile(LanguageDetect.class.getClassLoader().getResource("profiles").getPath()); - detect = DetectorFactory.create(); + List profile = new ArrayList<>(); + + try { + PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); + Resource[] resources = resolver.getResources("classpath:profiles/*"); + for (Resource resource:resources) { + try { + byte[] bytes = new byte[0]; + bytes = new byte[resource.getInputStream().available()]; + resource.getInputStream().read(bytes); + profile.add(new String(bytes)); + } catch (IOException e) { + e.printStackTrace(); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + if(!profile.isEmpty()){ + DetectorFactory.loadProfile(profile); + detect = DetectorFactory.create(); + } } catch (LangDetectException e) { e.printStackTrace(); log.error("语言检测初始化错误。"+e.getMessage()); @@ -45,7 +74,29 @@ public class LanguageDetect { return null; } + + public static void main(String[] args) { - System.out.println(detect("aa")); + var resolver = new PathMatchingResourcePatternResolver(); + Resource[] resources = new Resource[0]; + try { + resources = resolver.getResources("classpath:profiles/*"); + } catch (IOException e) { + e.printStackTrace(); + } + for (var resource:resources) { + System.out.println(resource.getFilename()); + try { + byte[] bytes = new byte[0]; + bytes = new byte[resource.getInputStream().available()]; + resource.getInputStream().read(bytes); + String str = new String(bytes); + System.out.println(str); + } catch (IOException e) { + e.printStackTrace(); + } + + } +// System.out.println(detect("aa")); } }