先祝大家中秋节快乐,为大家介绍下中秋篇Android文件下载与存储实例,感谢大家的支持哈!
1,为了下次使用的更方便我封装了一个文件与媒体下载的HttpDownloader类的代码如下:
// 此方法是为Text文件下载
public class HttpDownloader{
//声明url对象,为传递地址使用
private URL url=null;
//文件下载封装方法
public String download(String urlStr){
//声明StringBuffer对象
StringBuffer sb=new StringBuffer();
//为读取数据储存使用
String line =null;
//声明读取数据的对象
BufferedReader buffer =null;
try{
url =new URL(urlStr);
//通过HttpURLConnetion方法获取文件下载对象
HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
//通过流的方式得到文件下载内容,并存储在buffer中
buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
//循环读取存入
while(line=buffer.reaLine()!=null){
sb.append(line);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
//关闭流,为了节约内存
buffer.close();
}catch(Exception e){
e.printStackTrace();
}
}
return sb.toString();
}
//为MP3文件下载封装的方法,该方法返回是整形,-1:代表文件下载出错,0:代表文件下载成功,1:代表文件已经存在
public int downFile(String urlStr.String path,String fileName){
//声明InputSream对象
InputStream inputStream =null;
try{
//声明自定封装的SD卡的类
FileUtils fileUtils =new FileUtils();
//已经isFileEXist封装类的文件方法,用处是判断是否有此文件
if(fileUtils.isFileExist(path+fileName)){
return 1;
}else{
//调用下面声明的getInputStreamFronUrl方法
inputStream=getInputStreamFronUrl(urlStr);
//调用自定声明的write2SDFromInput方法,用处是写入SD卡
File resultFile =fileUtils.write2SDFromInput(pach,fileName,inputStream);
if(resultFile ==null){
return -1;
}
}
}catch(Exception e){
e.printStackTrace();
return -1;
}
finally{
try{
inputStream.close();
}
catch(Exception e){
e.printStackTrace();}
}
}
return 0;
}
//单一的定义一个获取文件内容的方法,可以使程序更好维护和修改
public InputStream getInputStreamFronUrl(String urlStr)
throws MalformedURLException,IOException{
url =new URL(urlStr);
HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
InputStream inputStream=urlConn.getInputStream();
return inputStream;
}
}
}
今天的内容就写到这里拉,明天为大家传入SD卡类的使用,谢谢大家,祝大家中秋快乐!