8

ライブラリ 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)
4

2 に答える 2

3

EOFExceptionがスローされます。

  • ストリームにデータがなく、読み込もうとしている場合。たとえば、DataInputStream などのチェーン ストリームの read メソッド、ObjectInputStreamは、FileInputStream から読み込もうとしているが FileInputStream が空である場合、EOFExceptionをスローします。

  • フォーマットが一致しない場合...たとえば、int が存在し、DataInputStream の readFloat() を使用している場合

于 2017-04-14T17:59:11.277 に答える