为什么 Epublib for Android Web View Load Data URL 显示 [B@41408d8



大家好,我尝试使用 epublib 显示 epub 的内容。这是我的代码

File f = new File(Environment.getExternalStorageDirectory() + "/documents/cindersilly.epub");
            String path = f.getPath();
            FileInputStream epubInputStream = new FileInputStream(f);
            Book book = new EpubReader().readEpub(epubInputStream);
            wvTest.loadDataWithBaseURL(f.getAbsolutePath(), book.getContents().get(0).getData().toString(), "text/html", "UTF-8", null);

我得到结果:

[B@41408d8

什么?以及如何解决这个问题,以便内容显示在 Web 视图上?谢谢

您尚未发布足够的代码来查看所有详细信息,但您的getData()方法返回byte[]。当您在对象上调用toString()时,它会尝试将其转换为String;但是数组没有返回任何特别有用的toString()。你得到的是一个标头([B(,告诉你它的类型(字节数组(,以及一个地址,说明它在JVM内存中的存储位置。

如果您希望能够看到数组的内容,可以使用Arrays.toString()将其转换为更有用的内容。你传递你得到的byte[](在本例中,getData()的输出(,它为你构造String表示。您的代码如下所示:

wvTest.loadDataWithBaseURL(f.getAbsolutePath(), Arrays.toString(book.getContents().get(0).getData()), "text/html", "UTF-8", null);

也有可能你根本不打算让它返回一个byte[],在这种情况下,你的问题在你的代码中更远

相关内容

  • 没有找到相关文章

最新更新