无法使用apache.poi库读取PPT文件

时间:2012-12-11 09:53:00

标签: apache-poi hslf

我想读一个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上被多次询问了,我尝试了所有建议的解决方案,但没有用。

1 个答案:

答案 0 :(得分:0)

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

要确定您的文件实际是什么,我建议您在附近的unix框中使用file实用程序,或使用带有TikaCLI和--detect的Apache Tika。这应该可以帮助你弄清楚你的文件是什么(提示 - 它不是.ppt因此错误!)然后你可以识别用什么库来打开它