Android – использование Jsoup с html-файлом android_asset

Хорошо, я использую Jsoup для анализа html с удаленных URL-адресов, используя:

Jsoup.connect(url).timeout(20000).get();

Теперь я пытаюсь прочитать локальные файлы html, которые я сохранил в папке assets. Я много искал, но не могу найти решение. В примере Jsoup — загрузить документ из файла они говорят сделать следующее:

File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

Из того, что я прочитал, путь к моему файлу будет - file:///android_asset/results_2009.html.

введите здесь описание изображения

Однако я всегда получаю no such file or directory, так как мне получить локальный файл в Jsoup?

Мне нужно использовать AssetManager или что-то в этом роде? Пожалуйста, может кто-нибудь указать мне в правильном направлении.


person Neil    schedule 28.12.2012    source источник


Ответы (1)


Jsoup.parse() имеет перегрузка, которая принимает InputStream. Вы можете использовать AssetManager, чтобы получить InputStream в свой файл и использовать его:

InputStream is=null;

try {
    is=getAssets().open("results_2009.html");
    Document doc = Jsoup.parse(is, "UTF-8", "http://example.com/");
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if(is!=null)
        is.close();
}
person rciovati    schedule 28.12.2012