您的位置:首页 > 理论基础 > 计算机网络

从网络上下载文件

2015-05-27 11:25 204 查看
文件的下载:

使用HTTP协议下载文件

·创建一个HttpURLConnection对象

HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();

·获得一个InputStream对象

urlConn.getInputStream()

·访问网络的权限

android.permission.INTERNET

·从网络上下载文件夹

HttpDownload.java中的代码:

public class HttpDownload {

private URL url;
/**根据URL下载文件,前提是这个文件当中的内容是文件 ,函数的返回值就是文件当中的内容
1、创建一个URl对象
2、通过URL对象,创建一个HttpURLConnection对象
3、得到InputStram
4、从InputStram中读取数据
**/
public  String downFile(String urlStr) {
StringBuffer sb=new StringBuffer();
String line=null;
//IO流的管道名,BufferedReader中有个ReadLine()方法,每次可以读取一行数据
BufferedReader buffer=null;
try {
//创建一个URL对象,然后把我们要下载的地址(urlStr)作为参数传进来
url = new URL(urlStr);
//创建一个Http链接
//调用URL的openConnection()方法,向下转型,将url转型为HttpURLConnection类型
HttpURLConnection urlConn=(HttpURLConnection) url
.openConnection();
//使用IO流读入数据
//url对象调用getInputStream()方法就可以得到一个InputStream
//这个InputStream代表的就是你的这个地址所代表的那个文件
//因为直接操作InputStream不太方便,所以我们在InputStream(字节流,读取的全是一个一个的字节)这个流外面
//套一层InputStreamReader,再在InputStreamReader(字符流)的外面套一层BufferedReader(其内的ReadLine()方法可读整行)
buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
line=buffer.readLine();
while(line !=null){
//将line对象里的数据添加到sb对象里的后面
sb.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
buffer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString() ;
}

private StringBuffer append(String line) {
return null;
}

}


·将下载的文件存入SD卡中

**必须在downManifest.xml中写入一些权限

1、得到当前设备SD卡的目录

2、访问SD卡的权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: