现在的位置: 首页 > 综合 > 正文

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

2013年09月09日 ⁄ 综合 ⁄ 共 1226字 ⁄ 字号 评论关闭

在进行应用开发的时候经常会涉及到文件下载,并且存储到指定的位置。在手机端则通常会选择将下载的文件存储到内置存储或者外置的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();
}

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

抱歉!评论已关闭.