正常访问状态! 设为首页 | 加入收藏夹 | 浏览历史  
  http://www.guosp.com
 碧海澜涛居
  海纳百川,有容乃大。壁立千刃,无欲则刚!
 
 
关键词:
  网站首页 | 关于本站 | 技术资料 | 美文日志 | 读书收藏 | 影视收藏 | 软件收藏 | 摄影相册| 留言板 
  技术资料 >> Android技术 关闭(快捷键alt+C)
搜索标签: 下载 Android 协议 下载文件
Android 使用http协议下载文件
[阅读次数:716次]  [发布时间:2013年11月23日]

1. 创建HttpURLConnection对象

HttpDownloader downloader = new HttpDownloader();

2.获得一个InputStream对象

3.访问网络,在Manifest.xml声明:androi.permission.INTERNET

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mars.download"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Download"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<uses-sdk android:minSdkVersion="4" />

<uses-permission android:name="android.permission.INTERNET"/> //允许网络访问
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> //允许写入SDK卡
</manifest>

Environment.getExternalStorageDirectory()// 获得SDK的路径

package page.util;
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下载文本文件
*/
public String download(String urlStr){
StringBuffer sb = new StringBuffer();
String line = null;
BufferedReader buffer = null;
try{
url = new URL(urlStr);
HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while((line = buffer.readLine())!=null)
{
sb.append(line);
}
}catch(Exception e)
{
e.printStackTrace();
}finally{
try{
buffer.close();
}catch(Exception e){
e.printStackTrace();
}
}
return sb.toString();

}
/**
* 下载文件并写SD卡
* @param urlStr
* @param path
* @param fileName
* @return 0-success,-1-fail,1-existed
*/
public int downFile(String urlStr,String path,String fileName){
InputStream inputStream= null;
try{
FileUtil fileUtil = new FileUtil();
if(fileUtil.isFileExist(path+fileName))
return 1;
else{
inputStream = getInputStreamFromUrl(urlStr);
File resultFile = fileUtil.write2SDFromInput(path, fileName, inputStream);
if(resultFile == null)
return -1;
}

}catch(Exception e){
e.printStackTrace();
}finally{
try{
inputStream.close();
}catch(Exception e){
e.printStackTrace();
}

}
return 0;
}
public InputStream getInputStreamFromUrl(String urlStr) throws MalformedURLException,IOException{
url = new URL(urlStr);
HttpURLConnection urlCon =(HttpURLConnection)url.openConnection();
InputStream inputStream = urlCon.getInputStream();
return inputStream;

}
}

package page.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.os.Environment;

public class FileUtil{
private String SDPATH;

public String getSDPATH(){
return SDPATH;
}

public FileUtil(){
SDPATH= Environment.getExternalStorageDirectory()+"/";
}

public File createSDFile(String fileName) throws IOException{
File file = new File(SDPATH+fileName);
file.createNewFile();
return file;
}
public File createSDDir(String dirName) {
File dir = new File(SDPATH+dirName);
dir.mkdir();
return dir;
}
public boolean isFileExist(String fileName){
File file = new File(SDPATH+fileName);
return file.exists();
}
public File write2SDFromInput(String path,String fileName,InputStream input){
File file = null;
OutputStream output = null;
try{
createSDDir(path);
file = createSDFile(path+fileName);
output = new FileOutputStream(file);
byte buffer[] = new byte[4*1024];
while((input.read(buffer))!=-1){
output.write(buffer);
}
output.flush();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
output.close();
}
catch(Exception e){
e.printStackTrace();
}
}

return file;
}

}





本页地址: [复制地址]
该页内容非本站原创 收藏自:http://blog.csdn.net/cthawdf/article/details/7452141
返回顶部 关闭(快捷键alt+C)
评论统计(0条)| 我要评论
暂无评论内容!
我要评论 
我要评论: 带*部分需要填写
 姓名称呼: * 请填写您的姓名或呢称
联系方式: QQ,MSN,Email都可以,方便交流 (仅管理员可见)
 评论内容: * 不超过100字符,50汉字
验证码:
    
  推荐链接
·无线路由器密码破解,教你断...
·IE弹出“中国工商银行防钓鱼...
·webdav漏洞的利用
·pc电脑上浏览手机网站在线w...
·.net教程:反编译工具Reflec...
·[转]网页抓取和防抓取
·利用花生壳软件通过D-LINK ...
·图片上传插件CKEditor 和 C...
·制作windows 2003自动安装盘...
·Windows 2003 SP2 企业版(整...
·关于WIN7设置里没有5.1声道...
·网页防抓取的一个思路以及实...
·Android中ListView分页加载...
·常用的网站漏洞扫描工具
·Server-U在Windows Server ...
·IIS无法启动,发生意外错误...
·ASP.NET之Web打印-终极解决...
·网站及服务器常见错误的原因...
·SQL Server2000与SP4补丁安...
·红帽子linux iso文件的下载...
  最近更新  
·Host 'XXX' is not allowed...
·Win2008或IIS7的文件上传大...
·IIS7.0上传文件限制的解决方...
·测试信息2015-03-11
·asp.net中处理图片
·ASP.NET之Web打印-终极解决...
·Asp.net下C#调用Word模版实...
·asp.net下将页面内容导入到...
·asp.net导出为pdf文件
·asp.net生成pdf文件
·FCKeditor 文本编辑器的使用...
·ASP.NET 将数据生成PDF
·asp.net2.0导出pdf文件完美...
·AspJpeg的安装与测试
·JS验证浏览器版本对IE11的支...
  热门浏览  
·IE8和IE9出现“此网页上的问...
·无线路由器密码破解,教你断...
·js替换所有回车换行符
·QQ/MSN在线交流代码
·如何取消键盘上的一些快捷键...
·IE弹出“中国工商银行防钓鱼...
·win7声音小的解决方法
·webdav漏洞的利用
·强制两端对齐的函数或者CSS...
·win7下成功安装sql server ...
·显示器分辨率调的过高导致电...
·天诺时空技术技术论坛
·js验证手机号码格式
·JS展开和收缩效果(二)
·本地计算机上的 MSSQLSERVE...
  碧海澜涛居
网站首页关于本站站长简介开发案例技术资料美文日志摄影相册读书收藏影视收藏留言板
版权所有:碧海澜涛 QQ:410436434 Email:shaopo_guo@163.com 苏ICP备15000526号
免责声明:本站为个人网站,站内所有文字、图片等各类资料均为个人兴趣爱好所收集,不用作任何商业用途,亦不保证资料的真实性,若有因浏览本站内容而导致的各类纠纷,本站也不承担任何责任。本站部分内容来自互联网,如有涉及到您的权益或隐私请联系站长解决。