大家好我尝试使用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);
我得到了结果:
那是什么? 以及如何解决这个问题,以便内容在webview上显示? 感谢[B @ 41408d8
答案 0 :(得分:2)
您尚未发布足够的代码以查看所有详细信息,但您的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[]
您也可能不打算返回{{1}},在这种情况下,您的问题会在您的代码中再次出现。