package com.jingwei.util;
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;
import java.io.File;
/**
* 文件操作工具类
*/
public class FileUtil {
/**
* 获取文件的编码格式
* @param file 文件对象
* @return 编码格式名称
*/
@SuppressWarnings("deprecation")
public static String getChartsetName(File file) {
String chartsetName = null;
//获取文件编码格式
CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
detector.add(new ParsingDetector(false));
detector.add(JChardetFacade.getInstance());
detector.add(ASCIIDetector.getInstance());
detector.add(UnicodeDetector.getInstance());
java.nio.charset.Charset charset = null;
try {
if (file != null) {
charset = detector.detectCodepage(file.toURL());
}
} catch (Exception ex) {
ex.printStackTrace();
}
if (charset != null) {
chartsetName=charset.name();
} else {
chartsetName="UTF-8";
}
return chartsetName;
}
public static void main(String[] args) {
File file = new File("E:\\自定义.xls");
String chartsetName = getChartsetName(file);
System.out.println(chartsetName);
}
}