I';我正在寻找一个关于将文本文件从URL保存到我的Android设备的简单教程
我需要将一个文本文件从我的网站保存到我的Android设备。对于像我这样的新手来说,我似乎找不到什么东西能很好地解释这个过程。有人能给我指一下正确的方向吗?将此添加到您的清单文件中I';我正在寻找一个关于将文本文件从URL保存到我的Android设备的简单教程,android,Android,我需要将一个文本文件从我的网站保存到我的Android设备。对于像我这样的新手来说,我似乎找不到什么东西能很好地解释这个过程。有人能给我指一下正确的方向吗?将此添加到您的清单文件中 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 本例将在
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
本例将在android中显示文本文件。。
它使用异步任务
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Display extends Activity implements
OnClickListener {
Button button;
TextView outputText;
public static final String URL =
"URL";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewsById();
button.setOnClickListener(this);
}
private void findViewsById() {
button = (Button) findViewById(R.id.button);
outputText = (TextView) findViewById(R.id.outputTxt);
}
public void onClick(View view) {
GetXMLTask task = new GetXMLTask();
task.execute(new String[] { URL });
}
private class GetXMLTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String output = null;
for (String url : urls) {
output = getOutputFromUrl(url);
}
return output;
}
private String getOutputFromUrl(String url) {
StringBuffer output = new StringBuffer("");
try {
InputStream stream = getHttpConnection(url);
BufferedReader buffer = new BufferedReader(
new InputStreamReader(stream));
String s = "";
while ((s = buffer.readLine()) != null)
output.append(s);
} catch (IOException e1) {
e1.printStackTrace();
}
return output.toString();
}
// Makes HttpURLConnection and returns InputStream
private InputStream getHttpConnection(String urlString)
throws IOException {
InputStream stream = null;
URL url = new URL(urlString);
URLConnection connection = url.openConnection();
try {
HttpURLConnection httpConnection = (HttpURLConnection) connection;
httpConnection.setRequestMethod("GET");
httpConnection.connect();
if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
stream = httpConnection.getInputStream();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return stream;
}
@Override
protected void onPostExecute(String output) {
outputText.setText(output);
}
}
}
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.net.URLConnection;
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.TextView;
公共类显示扩展了活动实现
onclick侦听器{
按钮;
文本视图输出文本;
公共静态最终字符串URL=
“网址”;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewsById();
setOnClickListener(此);
}
私有void findViewsById(){
按钮=(按钮)findViewById(R.id.button);
outputText=(TextView)findViewById(R.id.outputText);
}
公共void onClick(视图){
GetXMLTask task=新建GetXMLTask();
执行(新字符串[]{URL});
}
私有类GetXMLTask扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…URL){
字符串输出=null;
for(字符串url:url){
输出=getOutputFromUrl(url);
}
返回输出;
}
私有字符串getOutputFromUrl(字符串url){
StringBuffer输出=新的StringBuffer(“”);
试一试{
InputStream=getHttpConnection(url);
BufferedReader buffer=新的BufferedReader(
新的InputStreamReader(stream));
字符串s=“”;
而((s=buffer.readLine())!=null)
输出。追加;
}捕获(IOE1异常){
e1.printStackTrace();
}
返回output.toString();
}
//建立HttpURLConnection并返回InputStream
私有InputStream getHttpConnection(字符串urlString)
抛出IOException{
InputStream=null;
URL=新URL(URL字符串);
URLConnection=url.openConnection();
试一试{
HttpURLConnection httpConnection=(HttpURLConnection)连接;
setRequestMethod(“GET”);
httpConnection.connect();
if(httpConnection.getResponseCode()==HttpURLConnection.HTTP\u确定){
stream=httpConnection.getInputStream();
}
}捕获(例外情况除外){
例如printStackTrace();
}
回流;
}
@凌驾
受保护的void onPostExecute(字符串输出){
outputText.setText(输出);
}
}
}
澄清:您是否通过网络(网站)获取数据,然后想将数据作为文本文件保存到手机中?(或在数据库中,或更改电话数据)\n谢谢您的示例!希望我能了解它到底是如何工作的。这里发生的事情有没有一步一步的分解?我不太明白这一点,只是看到android中的asynctask,它用于从ui线程异步运行,然后看到url和http连接,最后看到正在阅读的文本文件。当我单击按钮时,它在textview区域显示了我的文本文件的内容…但这就像是一个完全的魔法…我不明白这里发生了什么???哥们…试试看逐步学习代码