I';我正在寻找一个关于将文本文件从URL保存到我的Android设备的简单教程

I';我正在寻找一个关于将文本文件从URL保存到我的Android设备的简单教程,android,Android,我需要将一个文本文件从我的网站保存到我的Android设备。对于像我这样的新手来说,我似乎找不到什么东西能很好地解释这个过程。有人能给我指一下正确的方向吗?将此添加到您的清单文件中 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 本例将在

我需要将一个文本文件从我的网站保存到我的Android设备。对于像我这样的新手来说,我似乎找不到什么东西能很好地解释这个过程。有人能给我指一下正确的方向吗?

将此添加到您的清单文件中

 <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区域显示了我的文本文件的内容…但这就像是一个完全的魔法…我不明白这里发生了什么???哥们…试试看逐步学习代码