Как получить содержимое файла, используя полный путь? - PullRequest
0 голосов
/ 23 декабря 2011

В веб-обозревателе Android вы можете передать что-то вроде file:///android_asset/myfile.txt или http://www.mysite.com/t.html, и оно получится без проблем.Теперь, если я попробую первый URL с префиксом файла в считывателе «FileReader», он выдаст исключение, что Файл не найден , хотя в WebView он работает без проблем (почему?)

Я хочу создать функцию, которая может принять файл или URL-адрес http и получить html содержимого, используя полный путь «file: /// ...». Как я могу это сделать, не сталкиваясь с исключением файла not found?

1 Ответ

0 голосов
/ 23 декабря 2011

Теперь, если я попробую первый URL с префиксом файла в считывателе «FileReader», он выдаст исключение, что файл не найден, хотя в WebView он работает без проблем (почему?)

Поскольку «File Reader» не имеет ресурса с именем /myfile.txt, предположительно. «File Reader» - это чужая программа, а не ваша, поэтому file:///android_asset/myfile.txt относится к активу этой другой программы, а не к вашей.

То, что я хочу, это создать функцию, которая может взять файл или http URL и получить html содержимого, используя полный путь "file: /// ...", как я могу сделать это, не сталкиваясь с исключением файла не найден

Имейте актив с именем /myfile.txt в своем приложении.

Я не пытался использовать стандартный ввод-вывод Java (например, File объекты) для чтения путей file:///android_asset. Это может сработать. Если нет, используйте startsWith(), чтобы определить, начинается ли строка с file:///android_asset - если это так, обрежьте это и используйте оставшуюся часть с AssetManager, чтобы прочитать актив.

...