1、在android中我门经常会用到下载网络上的某个文件。那怎么实现呢? 如下
public void DownMP3(){
String urlStr="http://192.168.18.204:8210/jxms/wechat/fileDownload?fileSign=2016-05-09_2045d8a1-d520-485d-afc0-ccf7b0b2f2f3&msgType=video";
OutputStream output=null;
try {
/*
* 通过URL取得HttpURLConnection
* 要网络连接成功,需在AndroidMainfest.xml中进行权限配置
* <uses-permission android:name="android.permission.INTERNET" />
*/
URL url=new URL(urlStr);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
//取得inputStream,并将流中的信息写入SDCard
/*
* 写前准备
* 1.在AndroidMainfest.xml中进行权限配置
* <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
* 取得写入SDCard的权限
* 2.取得SDCard的路径: Environment.getExternalStorageDirectory()
* 3.检查要保存的文件上是否已经存在
* 4.不存在,新建文件夹,新建文件
* 5.将input流中的信息写入SDCard
* 6.关闭流
*/
File file=new File(pathName);
InputStream input=conn.getInputStream();
if(file.exists()){
return;
}else{
String dir=SDCard+"/"+path;
new File(dir).mkdir();//新建文件夹
file.createNewFile();//新建文件
output=new FileOutputStream(file);
//读取大文件
byte[] buffer=new byte[4*1024];
while(input.read(buffer)!=-1){
output.write(buffer);
}
output.flush();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(output!=null){
output.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
文件下载的类封装好了,剩下的就是 调用了。。。