package mars.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpDownloader {
private URL url = null;
/**
* 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容,读取文本最好的方法自然是处理流
* 1.创建一个URL对象
* 2.通过URL对象,创建一个HttpURLConnection对象
* 3.得到InputStram
* 4.从InputStream当中读取数据
* @param urlStr
* @return
*/
public String download(String urlStr) {
//StringBuffer这个类用来储存大量String类型的数据
StringBuffer sb = new StringBuffer();
String line = null;
BufferedReader buffer = null;
try {
// 创建一个URL对象
url = new URL(urlStr);
// 创建一个Http连接
HttpURLConnection urlConn = (HttpURLConnection) url
.openConnection();
// 使用IO流读取数据,注意这里使用的是"装饰者"设计模式,且使用了两次,io流是从字节流->字符流->处理流
//buffer对象可以使用readLine函数来读取一整行的string
buffer = new BufferedReader(new InputStreamReader(urlConn
.getInputStream()));
while ((line = buffer.readLine()) != null) {
//将一整行的string添加到StringBuffer中去
sb.append(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//注意要将IO流的灌倒都关不
buffer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return sb.toString();//将StringBuffer中的String类型数据都返回
}
/**
* 该函数返回整形 -1:代表下载文件出错 0:代表下载文件成功 1:代表文件已经存在,这里可以修改程序使用toast提示用户
*/
public int downFile(String urlStr, String path, String fileName) {
InputStream inputStream = null;
try {
FileUtils1 fileUtils = new FileUtils1();
if (fileUtils.isFileExist(path + fileName)) {
return 1;
} else {
inputStream = getInputStreamFromUrl(urlStr);
File resultFile = fileUtils.write2SDFromInput(path,fileName, inputStream);
if (resultFile == null) {
return -1;
}
}
} catch (Exception e) {
e.printStackTrace();
return -1;
} finally {
try {
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return 0;
}
/**
* 根据URL得到输入流
*
* @param urlStr
* @return
* @throws MalformedURLException
* @throws IOException
*/
public InputStream getInputStreamFromUrl(String urlStr)
throws MalformedURLException, IOException {
url = new URL(urlStr);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConn.getInputStream();
return inputStream;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于Android的HTTP下载器程序
共32个文件
class:11个
png:6个
java:4个
4星 · 超过85%的资源 需积分: 3 31 下载量 130 浏览量
2012-09-28
20:51:22
上传
评论
收藏 63KB ZIP 举报
温馨提示
基于Android的Http下载器,可以下载文档也可以是文件,只需要填入下载的正确地址即可
资源推荐
资源详情
资源评论
收起资源包目录
Download.zip (32个子文件)
Download
.project 844B
project.properties 361B
proguard.cfg 1KB
src
mars
utils
HttpDownloader.java 3KB
FileUtils1.java 2KB
download
Download.java 1KB
AndroidManifest.xml 888B
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 3KB
layout
main.xml 621B
values
strings.xml 174B
.settings
org.eclipse.jdt.core.prefs 177B
assets
gen
mars
download
R.java 799B
.classpath 364B
bin
resources.ap_ 11KB
Download.apk 16KB
classes
mars
utils
FileUtils1.class 2KB
HttpDownloader.class 3KB
download
R$layout.class 379B
R$drawable.class 392B
R$attr.class 325B
Download$DownloadMp3Listener.class 991B
Download$DownloadTxtListener.class 1KB
R$id.class 409B
R.class 496B
R$string.class 412B
Download.class 1KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 2KB
classes.dex 7KB
共 32 条
- 1
daijun753
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页