Как прочитать текстовый файл в Android из Интернета?
Я новичок в Android. Мне нужно прочитать текстовый файл из Интернета и отобразить этот текстовый файл. Есть ли возможность просматривать текстовый файл непосредственно в Android. или еще как читать и отображать текстовый файл в android textview?
3 ответа
Использовать 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);
Надеюсь это поможет!
@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
Ответ, размещенный здесь, Android Чтение содержимого URL-адреса (содержимое отсутствует в результате) говорит вам, что делать, кроме установки текста в текстовом представлении.