下载文件类
package com.editxml;import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;public class HttpDownloader { private long downLoadFileSize = 0;
public int m_DownSign = 0; public byte[] readStream(InputStream inputStream) throws Exception {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream, "gbk"), 8192); String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
reader.close();
bout.close();
inputStream.close(); return sb.toString().getBytes();
} public int downFile(final String strUrl, final String strSavePath,
final String strFileName) {
m_DownSign = 0;
new Thread() {
public void run() {
try {
File fDir = new File(strSavePath);
if (!fDir.exists()) {
fDir.mkdir();
}
// 下载文件
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(strUrl + strFileName);
HttpResponse response;
response = client.execute(get);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
FileOutputStream fileOutputStream = null;
if (is != null) {
File file = new File(strSavePath, strFileName);
fileOutputStream = new FileOutputStream(file); byte[] buf = new byte[1024];
int ch = -1;
while ((ch = is.read(buf)) != -1) {
fileOutputStream.write(buf, 0, ch);
downLoadFileSize += ch;
}
}
fileOutputStream.flush();
if (fileOutputStream != null) {
fileOutputStream.close();
} m_DownSign = 1;
} catch (ClientProtocolException e) {
e.printStackTrace();
m_DownSign = -1;
} catch (IOException e) {
e.printStackTrace();
m_DownSign = -1;
}
}
}.start();
while (m_DownSign == 0) {
try {
Thread.sleep(100);
continue;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
m_DownSign = -1;
break;
} }
return m_DownSign;
}}
调用
File fDir = Environment.getExternalStorageDirectory();
if(fDir == null)
{
MsgShow("没有发现存储卡");
return;
}
HttpDownloader downloader = new HttpDownloader();
int iDownSign = downloader.downFile("http://192.168.3.35:80/", fDir + "/DownFile/", "xxxxxx.xml");
if(iDownSign == 1)
{
MsgShow("下载完成");
}
else
{
MsgShow("下载失败");
}