1

我想读取一个 ppt 文件,我尝试使用 apache.poi 库 API 读取文件。这就是我尝试过的。

POIFSFileSystem posF = new POIFSFileSystem(fileInputStream);

它引发以下错误

java.io.IOException: Invalid header signature; read 4851293027410584380, expected -2226271756974174256
at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:112)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:151)

这个问题已经在stackoverflow上被问过很多次,我尝试了所有建议的解决方案,但没有用。

4

1 回答 1

0

该错误告诉您,您的文件毕竟不是 PPT 文件。(它不是 OLE2 文件,是 .PPT 所基于的底层格式)

要弄清楚您的文件实际上是什么,我建议file在附近的 unix 机器上使用该实用程序,或者将Apache Tika与 TikaCLI 和 --detect 一起使用。这应该可以帮助您确定您的文件是什么(提示 - 它不是 .ppt 因此出现错误!)然后您可以确定使用哪个库来打开它

于 2012-12-11T23:40:49.300 回答