支持word
package com.data.util;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileContentSearch2 {
private static String FileName = "D:\\dataword";
private static String FileEnd = "docx";
private static String SearchStr = "哈";
private static Boolean IngronCase = true;
private static List<String> pathlist = new ArrayList<>();
public static void main(String[] args) {
XWPFDocument document;
StringBuffer tempText = new StringBuffer();
pathlist = getFileList(FileName);
for (int k = 0; k < pathlist.size(); k++) {
File file = new File(pathlist.get(k));
if (file.exists()) {
try {
document = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
List<XWPFParagraph> allParagraph = document.getParagraphs();
for (XWPFParagraph xwpfParagraph : allParagraph) {
List<XWPFRun> runList = xwpfParagraph.getRuns();
for (XWPFRun xwpfRun : runList) {
tempText.append(xwpfRun.toString());
if (tempText != null) {
if (IngronCase) {
if (tempText.toString().contains(SearchStr)) {
System.out.println("找到了"+tempText+"文件"+file.getName());
break;
}
} else {
if (tempText.toString().toLowerCase().contains(SearchStr.toLowerCase())) {
System.out.println("找到了");
break;
}
}
}
tempText.setLength(0);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static List<String> getFileList(String strPath) {
File dir = new File(strPath);
File[] files = dir.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
String fileName = files[i].getName();
if (files[i].isDirectory()) {
getFileList(files[i].getAbsolutePath());
} else if (fileName.endsWith("." + FileEnd)) {
String strFileName = files[i].getAbsolutePath();
pathlist.add(strFileName);
} else {
continue;
}
}
}
return pathlist;
}
}