读取ePub文件内容时抛出EOFException异常

9
我正在尝试使用epublib库读取ePub文件的内容,这个示例演示了如何操作。
但是,在从输入流中加载图书时,会抛出异常。
// Load Book from inputStream
Book book = (new EpubReader()).readEpub(epubInputStream);

不确定为什么这段代码对我来说无法工作,会抛出异常?它已经在StackOverflow的其他用户那里成功运行。

以下是完整的堆栈跟踪:

W/System.err: java.io.EOFException
W/System.err:     at libcore.io.Streams.readFully(Streams.java:83)
W/System.err:     at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:235)
W/System.err:     at nl.siegmann.epublib.epub.EpubReader.readResources(EpubReader.java:184)
W/System.err:     at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:94)
W/System.err:     at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:53)
W/System.err:     at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:37)
W/System.err:     at com.blogspot.gsrikar.ePubViewerActivity.readEPubContents(ePubViewerActivity.java:102)
W/System.err:     at com.blogspot.gsrikar.ePubViewerActivity.onCreate(ePubViewerActivity.java:88)
W/System.err:     at android.app.Activity.performCreate(Activity.java:6904)
W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
W/System.err:     at android.app.ActivityThread.-wrap17(ActivityThread.java)
W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err:     at android.os.Looper.loop(Looper.java:148)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7325)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

2
你尝试过多个书籍文件吗?你确定你的epub文件格式正确(可读)吗?你使用了正确的名称吗?文件是否存在?... - David Medenjak
请检查文件位置/目录和文件扩展名。 - minhazur
浪费100个声望点来设置悬赏并只提供一行代码而不是足够的信息并不明智。请提供一个带有源代码的MCVE,一个相关EPUB的下载链接以及其他可能有用的信息。帮助社区帮助你,否则你将得不到有意义的答案。 - kriegaex
2个回答

3

EOFException是一种异常,会在以下情况下抛出:

  • 如果一个中没有数据,但你试图读取数据。例如,链式流的read方法(如DataInputStream、ObjectInputStream)尝试从FileInputStream读取数据,但FileInputStream为空时,就会抛出EOFException

  • 如果格式不匹配。例如,如果存在int类型的数据,但你使用DataInputStream的readFloat()方法,则会抛出EOFException


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接