org.apache.poi.EmptyFileException: The supplied file was empty (zero bytes long)
at org.apache.poi.util.IOUtils.peekFirstNBytes(IOUtils.java:111)
at org.apache.poi.poifs.filesystem.FileMagic.valueOf(FileMagic.java:206)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:248)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:221)
at com.kpx.common.utils.poi.ExcelUtil.importExcel(ExcelUtil.java:318)
at com.kpx.wheelPath.service.impl.ExcelImportServiceImpl.readLocalFile(ExcelImportServiceImpl.java:107)
at com.kpx.wheelPath.service.impl.ExcelImportServiceImpl$$FastClassBySpringCGLIB$$5423b898.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)
at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)
以上问题是因为InputStream已经读取一遍了,而他不能 重复读取,此时我们只需要重新获取一下原来的数据就可以了。如下:
inputStream input = new FileInputStream(path);
// 此处是处理input的代码
input = new FileInputStream(path);
如果觉得此方法不合适,可以到网上搜重复读取inputStream会有很多解决办法。