/** * @Description: 类工具 */ package com.lulei.util; public class ClassUtil { /** * @param c * @return * @Description: 返回类class文件所在的目录 */ public static String getClassPath(Class<?> c) { return c.getResource("").getPath().replaceAll("%20", " "); } /** * @Description: * @param c * @param hasName 是否显示文件名 * @return 返回类class文件的地址 */ public static String getClassPath(Class<?> c, boolean hasName) { String name = c.getSimpleName() + ".class"; String path = c.getResource(name).getPath().replaceAll("%20", " "); if (hasName) { return path; } else { return path.substring(0, path.length() - name.length()); } } /** * @Description: 返回类class文件所在的顶级目录 * @param c * @return */ public static String getClassRootPath(Class<?> c) { return c.getResource("/").getPath().replaceAll("%20", " "); } public static void main(String[] args) { System.out.println(ClassUtil.getClassPath(ClassUtil.class, true)); System.out.println(ClassUtil.getClassPath(Math.class, true)); System.out.println(ClassUtil.getClassRootPath(Math.class)); } }
/** *@Description: 编码方式检测类 */ package com.lulei.util; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.nio.charset.Charset; import info.monitorenter.cpdetector.io.ASCIIDetector; import info.monitorenter.cpdetector.io.CodepageDetectorProxy; import info.monitorenter.cpdetector.io.JChardetFacade; import info.monitorenter.cpdetector.io.ParsingDetector; import info.monitorenter.cpdetector.io.UnicodeDetector; public class CharsetUtil { private static final CodepageDetectorProxy detector; static {//初始化探测器 detector = CodepageDetectorProxy.getInstance(); detector.add(new ParsingDetector(false)); detector.add(ASCIIDetector.getInstance()); detector.add(UnicodeDetector.getInstance()); detector.add(JChardetFacade.getInstance()); } /** * @param url * @param defaultCharset * @Author:lulei * @return 获取文件的编码方式 */ public static String getStreamCharset (URL url, String defaultCharset) { if (url == null) { return defaultCharset; } try { //使用第三方jar包检测文件的编码 Charset charset = detector.detectCodepage(url); if (charset != null) { return charset.name(); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return defaultCharset; } /** * @param inputStream * @param defaultCharset * @return * @Author:lulei * @Description: 获取文件流的编码方式 */ public static String getStreamCharset (InputStream inputStream, String defaultCharset) { if (inputStream == null) { return defaultCharset; } int count = 200; try { count = inputStream.available(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { //使用第三方jar包检测文件的编码 Charset charset = detector.detectCodepage(inputStream, count); if (charset != null) { return charset.name(); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return defaultCharset; } public static void main(String[] args) throws Exception { URL url = new URL("http://www.csdn.net"); System.out.println(CharsetUtil.getStreamCharset(url, "default")); } }
基于lucene的案例开发:ClassUtil & CharsetUtil
原文地址:http://blog.csdn.net/xiaojimanman/article/details/43194793