Чтение текстового файла с сервера на Android

У меня есть текстовый файл на моем сервере. Я хочу открыть текстовый файл из своего приложения для Android и затем отобразить текст в TextView. Я не могу найти примеры того, как сделать основное соединение с сервером и подать данные в Строку.

Любая справка, которую можно обеспечить, ценилась бы.

37
задан Chris 27 May 2010 в 14:54
поделиться

2 ответа

Попробуйте следующее:

try {
    // Create a URL for the desired page
    URL url = new URL("mysite.com/thefile.txt");

    // Read all the text returned by the server
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    String str;
    while ((str = in.readLine()) != null) {
        // str is one line of text; readLine() strips the newline character(s)
    }
    in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}

(взято из Exampledepot: Getting text from URL)

Должно хорошо работать на Android.

58
ответ дан 27 November 2019 в 04:31
поделиться

Хотя URL.openStream будет работать, вам лучше использовать библиотеку Apache HttpClient, которая поставляется с Android для HTTP. Среди других причин вы можете использовать с ним кодировку содержимого (gzip), что сделает передачу текстовых файлов намного меньше (лучшее время автономной работы, меньшее использование сети) и быстрее.

Существуют различные способы использования HttpClient, и существует несколько помощников для упрощения работы. См. Этот пост для получения более подробной информации об этом: Проект Android с использованием httpclient -> http.client (apache), метод post / get (и обратите внимание, что HttpHelper, который я там включил, использует gzip, хотя не все) .

Кроме того, независимо от того, какой метод вы используете для получения данных через HTTP, вы захотите использовать AysncTask (или Handler), чтобы не блокировать поток пользовательского интерфейса при выполнении сетевого вызова.

И обратите внимание, что вы почти НИКОГДА не должны просто использовать URL.openStream (без настройки какой-либо конфигурации, например, тайм-аутов), хотя многие примеры показывают это, потому что он будет блокироваться на неопределенный срок, если ваш сервер недоступен (по умолчанию у него нет тайм-аут): URL.openStream () может оставить вас в подвешенном состоянии .

14
ответ дан 27 November 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: