Android学习笔记————文件下载

在进行应用开发的时候经常会涉及到文件下载,并且存储到指定的位置。在手机端则通常会选择将下载的文件存储到内置存储或者外置的sd卡中。

要进行文件下载,首先需要在AndroidManifest.xml文件中申明需要的权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
分别是网络连接和外置空间读写的权限。

进行文件下载,主要涉及到java中输入、输出流的使用,整个过程也是非常简单。

文件下载可以细分为以下几个步骤:

1、从对应文件的url获取相应的输入流。

URL url = new URL("http://iphone.images.paojiao.cn/iphone/paper/20117/9/43198644/paojiao_a81d869d.jpg");
//创建连接
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

//设置连接的一些属性
urlConnection.setRequestMethod("GET");
urlConnection.setDoInput(true);

urlConnection.connect();
		        
inputStream = urlConnection.getInputStream();

2、获取根据需要保存的文件路径获取输出流。

File SDCardRoot = Environment.getExternalStorageDirectory();

File file = new File(SDCardRoot + "/test/test_download.jpg");
		        
fileOutput = new FileOutputStream(file);
需要说明的是Environment.getExternalStorageDirectory()得到的是内置存储空间的路径。

3、进行读写操作

byte[] buffer = new byte[1024];

while ( (bufferLength = inputStream.read(buffer)) > 0 ) {

	fileOutput.write(buffer, 0, bufferLength);

}
fileOutput.flush();
4、读写完毕之后,关闭流。
try {
	inputStream.close();
} catch (IOException e1) {
	e1.printStackTrace();
}
try {
	fileOutput.close();
} catch (IOException e) {
	e.printStackTrace();
}

这样,简单的文件下载功能便实现了,当然复杂的功能,如:断点续传,多线程下载等,后续再进行分析。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值