Почему epublib для Android веб-просмотра загрузки URL-адрес данных показывают [B@41408d8?
Привет всем, я пытаюсь показать содержание epub, используя epublib. это мой код
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
что это такое? и как решить эту проблему, так что контент будет отображаться на веб-сайте? Спасибо
1 ответ
Вы не опубликовали достаточно кода, чтобы увидеть все детали, но ваш 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[]
вообще, в этом случае ваша проблема еще дальше в вашем коде.