为什么epublib for android web view加载数据url show [B @ 41408d8?

时间:2014-09-27 16:53:11

标签: java android epublib

大家好我尝试使用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

那是什么? 以及如何解决这个问题,以便内容在webview上显示? 感谢

1 个答案:

答案 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}},在这种情况下,您的问题会在您的代码中再次出现。