初识android——下载文件
来源:互联网 发布:淘宝店铺装修页尾 编辑:程序博客网 时间:2024/05/21 00:18
自学过程中,看到老师在app中可以下载文件,就敲了两个download的用到的两个class,日后在用的时候可以直接拿过来用。放在这里保存起来,省得以后忘了。
public class FileUtils { private String SDPATH; public String getSDPATH() { return SDPATH; } public FileUtils() { //得到当前外部存储设备的目录 SDPATH = Environment.getExternalStorageDirectory() + "/"; } //在SD卡上创建文件 public File creatSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); file.createNewFile(); return file; } //在SD卡上创建目录 public File creatSDDir(String dirName) { File dir = new File(SDPATH + dirName); dir.mkdir(); return dir; } //判断SD卡上的文件是否已经存在 public boolean isFileExist(String fileName) { File file = new File(SDPATH + fileName); return file.exists(); } //将一个InputStream里面的数据写到SD卡上 public File writeSDFromImput(String path, String fileName, InputStream input) { File file = null; OutputStream output = null; try { creatSDDir(path); File f = creatSDFile(path + fileName); output = new FileOutputStream(f); byte buffer[] = new byte[4 * 1024]; while ((input.read(buffer)) != -1) { output.write(buffer); } file = new File(path); } catch (Exception e) { e.printStackTrace(); } finally { try { output.close(); }catch (Exception e){ e.printStackTrace(); } } return file; }}
public class HttpDownloader { private URL url=null; //根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容 public String download(String urlStr){ StringBuffer sb = new StringBuffer(); String line=null; BufferedReader buffer=null; try { //创建一个URL对象 url=new URL(urlStr); //创建一个http链接 HttpURLConnection urlConn=(HttpURLConnection)url.openConnection(); //使用IO流读取数据 buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream())); while((line=buffer.readLine())!=null){ sb.append(line); } }catch(Exception e){ e.printStackTrace(); }finally { try { buffer.close(); }catch (Exception e){ e.printStackTrace(); } } return sb.toString(); } //该函数返回整形 -1代表下载文件出错,0代表下载文件成功,1代表文件已经存在 public int download(String urlStr,String path,String fileName){ InputStream inputStream=null; try { FileUtils fileUtils=new FileUtils(); if(fileUtils.isFileExist(path+fileName)){ return 1; }else{ inputStream=getInputStreamFromUrl(urlStr); File resultFile=fileUtils.writeSDFromImput(path,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; } //根据URL得到输入流 public InputStream getInputStreamFromUrl(String urlStr) throws MalformedURLException,IOException{ url=new URL(urlStr); HttpURLConnection urlConn=(HttpURLConnection)url.openConnection(); InputStream inputStream=urlConn.getInputStream(); return inputStream; }}
0 0
- 初识android——下载文件
- 初识AS3(十一)——下载文件
- Android—初识NDK
- Android学习之——文件下载
- Android文件下载——12
- Android中的文件下载——DownLoadManager
- Android中的文件下载——DownLoadManager
- Android中的文件下载——DownLoadManager
- Android中的文件下载——DownLoadManager
- Android中的文件下载——DownLoadManager
- Android中的文件下载——DownLoadManager
- Android例子—WebView文件下载
- 初识android——Fragment
- 初识android——Service
- Android——初识RxJava
- 初识android——Handler
- Android第九讲——网络(四) 文件的下载(单线程下载、多线程下载)
- Android例子—Android文件下载--多线程断点下载的代码流程解析
- android res 资源简介
- github项目托管-window用msysgit
- TensorFlow Windows 安装指南
- 【Java】进制
- 利用SharedPreferences(持久化技术)实现密码的存储功能
- 初识android——下载文件
- 深入C++对象之构造函数语意学
- 变量交换
- 第四章_对象与类
- 微信小程序入门之构建一个简单TODOS应用
- TCP网络编程中connect()、listen()和accept()三者之间的关系
- Java异常处理
- noi-1745-字符串判等
- vpnservice 详解