zoukankan      html  css  js  c++  java
  • 文件下载

    1.使用http协议下载文件

      

    创建一个HttpURLConnection对象

      HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();

    获得一个InputStream对象

      urlConn.getInputStream();

    访问网络权限

      Android.permission.INTERNET

    2.将文件写入sdcard

      得到当前设备SD卡的目录

        Environment.getExternalStorageDirectory()

      访问SD卡的权限

        android.permission.WRITE_EXERNAL_STORIGE

    //下载普通形式的文件

    public String download(String urlStr){
    StringBuffer sb = new StringBuffer() ;
    String line = null ;
    BufferedReader buffer = null;
    try{
    //创建URL对象
    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) {
    // TODO: handle exception
    e.printStackTrace();
    }finally{
    try{
    buffer.close();
    }catch (Exception e) {
    e.printStackTrace();
    // TODO: handle exception
    }
    }
    return sb.toString() ;

    }

     //下载任意行事的文件

    public String download(String urlStr,String path,String fileName){
    InputStream inputStream = null ;
    try{

      FileUtils fileUtils = new FileUtils () ;

      if(fileUtils.isFileExistt(path + fileName)){

        return 1 ;

      }else{

        inputStream = getInoutStreamFromUrl(urlStr);

    File resultFile = fileUtils.wrie2sFromInput(path,fileName,inputStream);

    if(resultFile == null)

    return -1 ;

      }
    }
    }catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();

    return  -1;
    }finally{
    try{
    buffer.close();
    }catch (Exception e) {
    e.printStackTrace();
    // TODO: handle exception
    }
    }
    return sb.toString() ;

    }

     ////***FileUtils类***///

    package com.hl;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;

    import android.os.Environment;

    public class FileUtils {
    private String SDPATH;

    public String getSDPATH(){
    return SDPATH ;
    }

    public FileUtils(){
    //得到当前设备的目录
    SDPATH = Environment.getExternalStorageDirectory()+"/" ;
    }
    //在sd卡上创建目录
    public File createSDFile(String fileName) throws IOException{
    File file = new File(SDPATH + fileName) ;
    file.createNewFile() ;
    return file ;
    }

    //在sd卡上创建目录
    public File createSDDir(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 write2sFormInput(String path,String fileName,InputStream input){
    File file = null ;
    OutputStream output = null ;
    try{
    createSDDir(path);
    file = createSDFile(path + fileName);
    output = new FileOutputStream(file) ;
    byte buffer[] = new byte[4*1024] ;
    while((input.read(buffer))!=-1){
    output.write(buffer);
    }
    output.flush();
    }catch (Exception e) {
    e.printStackTrace();
    // TODO: handle exception
    }finally{
    try{
    output.close();
    }catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace() ;
    }
    }
    return file ;
    }
    }

  • 相关阅读:
    1.1 js 预解释(变量的提升,浏览器的加载机制)
    js 原型链详解
    ES6模块 与 CommonJS的差异
    export,import,export default,import()区别
    css权重优先级
    CSS3如何实现0.5边框
    JS 时间戳转换成具体时间
    http协议(二)请求和响应报文的构成
    http协议(一)一些基础知识
    mac homebrew  常用命令
  • 原文地址:https://www.cnblogs.com/heartstong/p/4679490.html
Copyright © 2011-2022 走看看