Android文件下载做法和JAVA的网络编程差不多,我没有使用第三方插件、方法。做的比较粗糙,高手绕道哈。
JAVA code
package cn.qiuzhping.study;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class DownloadStudy extends Activity {
private Button btn_download1 = null;
private Button btn_download2 = null;
/**
* @项目名称:study
* @类名称:HttpDownloder
* @作者:Qiuzhping
* @时间:2013-12-29下午11:04:11
* @作用 :根据Http协议下载文件
*/
public class HttpDownloader {
private URL url = null;
/**
* @方法名: download
* @作者:Qiuzhping
* @作用: 根据网络路径 下载文本文件
* @返回值类型: String
*/
public String download(String urlStr) {
StringBuffer sb = new StringBuffer();
String line = null;
BufferedReader bufferReader = null;
try {
url = new URL(urlStr);
HttpURLConnection urlConn = (HttpURLConnection) url
.openConnection();
bufferReader = new BufferedReader(new InputStreamReader(
urlConn.getInputStream()));// BufferedReader
// 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取
while ((line = bufferReader.readLine()) != null) {// 按行读取文本
sb.append(line);
}
} catch (Exception e) {
e.printStackTrace();
Log.w("download", "文本文件下载异常!!!");
} finally {
try {
if (bufferReader != null)
bufferReader.close();
} catch (IOException e) {
e.printStackTrace();
Log.w("download", "bufferReader关闭异常!!!");
}
}
return sb.toString();
}
/**
* @方法名: download
* @作者:Qiuzhping
* @作用: 下载非文本文件
*