Java使用POI读取Word文档时如果文档内容为空时出现异常
异常如下:
org.apache.poi.EmptyFileException: The supplied file was empty (zero bytes long)
at org.apache.poi.util.IOUtils.peekFirstNBytes(IOUtils.java:74)
at org.apache.poi.util.IOUtils.peekFirst8Bytes(IOUtils.java:57)
at org.apache.poi.poifs.filesystem.FileMagic.valueOf(FileMagic.java:135)
at org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:175)
at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:209)
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:98)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:116)
不知道如何避免这个异常, 怎样判断word文档内容是否为空呢?或者怎样获取到文档的大小呢?
最佳答案
判断文档内容是否为空:
File file = new File("test.docx");
if(file.length() == 0) {
System.out.println("文件为空!");
}
另外读取Word文档内容用Free Spire.Doc for Java也是个不错的方法, 两句代码
Document document = new Document("input.docx");
String text = document.getText();