package com.tongdainfo.common.parser;
import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
/**
* 功能描述:文本解析类
* @author zhao
*
*/
public class ParserUtil {
private static String charset = "GBK";
private static Map<String,IParser> PARSER_MAP=new HashMap();
private static String CONFIG="com/tongdainfo/common/parser/parser.properties";
static {
initParaserMap();
}
public static void initParaserMap() {
Properties props = new Properties();
InputStream in= null;
try{
in= Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG);
props.load(in);}
catch(Exception e){
e.printStackTrace();
}
finally{
if(in!=null ){
try {in.close(); }
catch (Exception e) {}
}
}
Map<String,IParser> paraserMap=new HashMap();
paraserMap.put(null, new IParser(){
public String[] getFileTypes() {
return null;
}
public String readText(File file, String charset) throws Exception {
return "";
}});
if(props.isEmpty()) return ;
Iterator it= props.keySet().iterator();
while(it.hasNext()){
String key=(String) it.next();
String clazzStr=(String)props.get(key);
try {
Class clazzObj =Class.forName(clazzStr);
IParser parser= (IParser)clazzObj.newInstance();
paraserMap.put(key.toLowerCase(), parser);
} catch (Exception e) {
e.printStackTrace();
}
}
ParserUtil.PARSER_MAP=paraserMap;
}
private static String parserText (File file ,String extendsName,String encoding) throws Exception{
IParser parser =PARSER_MAP.get(extendsName);
if(parser==null) return "";
String text=parser.readText(file,encoding);
return text;
}
public static String readText(File file,String fileName,String charset)throws Exception{
String extName = getFileType(fileName);
return parserText (file ,extName,charset);
}
public static String readText(File file,String fileName)throws Exception {
String extName = getFileType(fileName);
return parserText (file ,extName,charset);
}
public static String readText(String filePath,String charset)throws Exception{
String extName = getFileType(filePath);
File file=new File(filePath);
return parserText (file ,extName,charset);
}
public static String readText(String filePath) throws Exception {
String extName = getFileType(filePath);
File file=new File(filePath);
return parserText (file ,extName,charset);
}
/**
* 功能描述:获取文件类型
* @param path
* @return
*/
private static String getFileType(String path) {
path = path.trim();
int i = path.lastIndexOf(".");
if (i != -1) {
String type = path.substring(i + 1, path.length()).toLowerCase();
return type;
} else {
return null;
}
}
/**
* 判断文件是否可以接受
* @param file
* @return
*/
public static boolean isAcceptability(File file) {
String type=getFileType(file.getName());
type=type.toLowerCase();
return PARSER_MAP.containsKey(type);
}
public static boolean isAcceptability(String filePath) {
String type=getFileType(filePath);
type=type.toLowerCase();
return PARSER_MAP.containsKey(type);
}
/**
private String standardize(String str) {
str = str.replaceAll("[\\r\\n]", "");
str = str.replaceAll("维普资讯", "");
str = str.replaceAll("http://www.cqvip.com", "");
return str;
}
* @throws Exception */
public static void main(String[] s) throws Exception{
File file=new File("D:/");
File[] files=file.listFiles();
File temp=null;
for(int i=0;i<files.length;i++){
temp=files[i];
if(temp.isDirectory()) continue;
System.out.println("file:"+temp.getAbsolutePath());
System.out.println("内容:"+ParserUtil.readText(temp.getAbsolutePath()));
}
}
}

祈祷
- 粉丝: 34
最新资源
- 利用数字图像处理技术测量针织物结构参数的研究.doc
- 首钢科研项目管理流程的创新研究.doc
- 项目管理手册(定稿134页).doc
- 网络文化环境对小学生心理品质影响研究.pptx
- (源码)基于electronvue框架的美图搜罗器.zip
- 深圳市国税网络发票电信版操作说明书.doc
- 高一数学基本算法语句条件语句.pptx
- 工程项目管理问题及应对方法.docx
- 数据挖掘技术前馈神经网络.pptx
- 第6讲--Matlab-方程求解与优化问题.ppt
- 关于电子商务的简历范文.doc
- 中建某公司项目管理目标责任考核与兑现管理细则.docx
- 网络促销--网络促销的实施程序.ppt
- 监控网络工程系统方案.doc
- 第二届中国互联网大学生创新创业大赛Ihome创业策划书.doc
- 基于Android考试系统软件开发设计.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


