Как читать текстовые файлы в Android из Интернета? - PullRequest
15 голосов
/ 23 мая 2011

Я новичок в Android. Мне нужно прочитать текстовый файл из Интернета и отобразить этот текстовый файл. Есть ли возможность просмотреть текстовый файл непосредственно в Android. или еще как читать и отображать текстовый файл в android textview?

Ответы [ 3 ]

21 голосов
/ 23 мая 2011

Используйте DefaultHttpClient httpclient = new DefaultHttpClient();

HttpGet httppost = new HttpGet("http://www.urlOfThePageYouWantToRead.nl/text.txt");
HttpResponse response = httpclient.execute(httppost);
        HttpEntity ht = response.getEntity();

        BufferedHttpEntity buf = new BufferedHttpEntity(ht);

        InputStream is = buf.getContent();


        BufferedReader r = new BufferedReader(new InputStreamReader(is));

        StringBuilder total = new StringBuilder();
        String line;
        while ((line = r.readLine()) != null) {
            total.append(line + "\n");
        }

        TextView.setText(total);

Надеюсь, это поможет!

6 голосов
/ 23 июля 2014

@ BadSkillz прав, но в API последние 9 он делает ошибку:

    android.os.NetworkOnMainThreadException

, потому что вы должны выполнять сетевые операции в другом потоке, потому что работа в сети в основном потоке делает ваше приложение не отвечающим на любой запрос, поэтому выможете добавить этот класс в свою деятельность:

private class GetStringFromUrl extends AsyncTask<String, Void, String> {

    ProgressDialog dialog ;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        // show progress dialog when downloading 
        dialog = ProgressDialog.show(MainActivity.this, null, "Downloading...");
    }

    @Override
    protected String doInBackground(String... params) {

        // @BadSkillz codes with same changes
        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(params[0]);
            HttpResponse response = httpClient.execute(httpGet);
            HttpEntity entity = response.getEntity();

            BufferedHttpEntity buf = new BufferedHttpEntity(entity);

            InputStream is = buf.getContent();

            BufferedReader r = new BufferedReader(new InputStreamReader(is));

            StringBuilder total = new StringBuilder();
            String line;
            while ((line = r.readLine()) != null) {
                total.append(line + "\n");
            }
            String result = total.toString();
            Log.i("Get URL", "Downloaded string: " + result);
            return result;
        } catch (Exception e) {
            Log.e("Get Url", "Error in downloading: " + e.toString());
        }
        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);

        // TODO change text view id for yourself
        TextView textView = (TextView) findViewById(R.id.textView1);

        // show result in textView
        if (result == null) {
            textView.setText("Error in downloading. Please try again.");
        } else {
            textView.setText(result);
        }

        // close progresses dialog
        dialog.dismiss();
    }
}

и использовать ударную линию каждый раз, когда захотите:

new GetStringFromUrl().execute("http://www.google.com/");

, помогая @ Leandros

2 голосов
/ 23 мая 2011

Ответ выложен здесь Android Чтение содержимого URL (содержимое отсутствует в результате) говорит вам, что делать, кроме установки текста в текстовом представлении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...