如果只是决定一个已知为.文档
或. docx
但没有相应标记扩展名的文件集合,您可以使用.docx
文件是压缩文件集合的事实。以下内容可能会有所帮助:
boolean isZip = new ZipInputStream( fileStream ).getNextEntry() != null;
其中fileStream
是您希望评估的任何文件或其他输入流。您可以通过查找键. docx
条目来进一步评估压缩文件。Word文档(DOCX)是一个很好的起始参考。同样,如果您知道它只是一个二进制文件,您可以测试Word的文件信息块(参见Word(.文档)二进制文件格式)
您可以使用Apache Tika进行内容检测。但您应该知道,对于这样一个小任务来说,这是一个巨大的框架(许多必需的依赖项)。
有一种方法,虽然没有向前推进。但是使用ApachePOI,您可以找到它。
尝试使用HWPFDocument Class读取. docx文件。它会给你以下错误
org. apache.poi.poifs.filessystem.Office XmlFileException:提供的数据似乎位于Office 2007XML中。您正在调用POI中处理OLE2 Office文档的部分。您需要调用POI的其他部分来处理此数据(例如XSSF而不是HSSF)
String filePath = "C:\\XXXX\XXXX.docx";
FileInputStream inStream;
try {
inStream = new FileInputStream(new File(filePath));
HWPFDocument doc = new HWPFDocument(inStream);
WordExtractor wordExtractor = new WordExtractor(doc);
System.out.println("Getting words"+wordExtractor.getText());
} catch (Exception e) {
System.out.print("Its not a .doc format");
}
. docx可以使用XWPFDocument Class读取。