我想读一个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上被多次询问了,我尝试了所有建议的解决方案,但没有用。
答案 0 :(得分:0)
该错误告诉您,您的文件毕竟不是PPT文件。 (它不是OLE2文件,它是.PPT所依据的基础格式)
要确定您的文件实际是什么,我建议您在附近的unix框中使用file
实用程序,或使用带有TikaCLI和--detect的Apache Tika。这应该可以帮助你弄清楚你的文件是什么(提示 - 它不是.ppt因此错误!)然后你可以识别用什么库来打开它