#POI两个方法操作word文档
将文档转换为流
private static String getDocString(){
String dataScbgFilePath = “D:\文档.doc”;
File file = new File(dataScbgFilePath);
InputStream in = null;
FileOutputStream stream = null;
String wordString = “”;
try {
in = new FileInputStream(file);
byte[] data = toByteArray(in);
wordString = getDocumentContent(data);
}catch(Exception e){
}
return wordString;
}
/**
* **流转成byte[]**
* @param InputStream
* @return byte[]
* @throws IOException
*/
private static byte[] toByteArray(InputStream in) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024 * 4];
int n = 0;
while ((n = in.read(buffer)) != -1) {
out.write(buffer, 0, n);
}
return out.toByteArray();
}
**HWPFDocument 解析doc**
private static String getDocumentContent(byte[] contentBytes) {
String documentContent = StringUtils.EMPTY;
InputStream docInputStream = new ByteArrayInputStream(contentBytes);
try {
HWPFDocument hwpfDocument = new HWPFDocument(docInputStream);
documentContent = hwpfDocument.getDocumentText();
return documentContent;
} catch (IOException e) {
LOGGER.error(e.getMessage());
return getDocxDocumentContent(contentBytes, documentContent);
} finally {
IOUtils.closeQuietly(docInputStream);
}
}
**XWPFDocument解析docx**
private static String getDocxDocumentContent(byte[] contentBytes, String documentContent) {
InputStream docxInputStream = new ByteArrayInputStream(contentBytes);
try {
XWPFDocument xwpfDocument = new XWPFDocument(docxInputStream);
XWPFWordExtractor extractor = new XWPFWordExtractor(xwpfDocument);
documentContent = extractor.getText();
extractor.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
IOUtils.closeQuietly(docxInputStream);
}
return documentContent;
}