如果比较文档相似性,首先会把txt、doc、pdf 格式的文档输出到缓冲区。文档输出字符串类
根据课题 文档相似性检测系统(作业查重)
实现txt输出比较容易、doc的话就要用到poi控件、方法很多还能用到itext、pdf格式用到pdfbox
/*
* 判断要比较的文章后缀格式。doc、txt、pdf格式均可
* 返回字符串
*/
import java.io.*;
import org.pdfbox.pdmodel.PDDocument;
import org.textmining.text.extraction.WordExtractor;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.util.PDFTextStripper;
public class wordortxt {
public static String readDoc(String docFilePath) throws Exception { //doc格式输出
// 创建输入流读取doc文件
File f1 = new File(docFilePath);
FileInputStream in = new FileInputStream(f1);
WordExtractor extractor = null;
String text = null;
// 创建WordExtractor
extractor = new WordExtractor();
// 对doc文件进行提取
text = extractor.extractText(in);
return text;
}
public static String readtxt(String txtFilePath) throws Exception { //txt格式输出
File f = new File(txtFilePath);
FileInputStream inputstream = new FileInputStream(f);
StringBuffer buffer = new StringBuffer();
String line; // 用来保存每行读取的内容
InputStreamReader in=new InputStreamReader(inputstream);
BufferedReader bufferreader = new BufferedReader(in);
line = bufferreader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("\n"); // 添加换行符
line = bufferreader.readLine(); // 读取下一行
}
// 将读到 buffer 中的内容写出来
inputstream.close();
String filetext = buffer.toString();
//inputstream.getEncoding()
//filetext就是得到的字符串
return filetext;
//System.out.print(filetext);
//System.out.print(in.getEncoding());*/
}
public static String readPDF (String PDFFilePath) { //PDF格式输出
String resultPDF = null;
FileInputStream is = null;
PDDocument document = null;
try{
is = new FileInputStream(PDFFilePath);
PDFParser p = new PDFParser(is); //对PDF文件进行解析
p.parse(); //获取解析后得到的PDF文档对象
document = p.getPDDocument(); //新建一个PDF文本剥离器
PDFTextStripper stripper = new PDFTextStripper(); //从PDF文档对象中剥离文本
resultPDF = stripper.getText(document);
} catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e ){
e.printStackTrace();
} finally {
if (is != null){
try {
is.close();
}catch (IOException e){
e.printStackTrace();
}
}
if (document != null){
try {
document.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return resultPDF;
}
}