`

Android学习笔记_文件下载

 
阅读更多

文件下载:
HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
urlConn.getInputStream()
例:
HttpDownloader.java
public class HttpDownloader {
   private URL url=null;
   public String download(String urlStr){
       StringBuffer sb=new StringBuffer();
       String line=null;
       BufferedReader buffer = null;
       try{
          url=new URL(urlStr);
          HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
          buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
          while((line=buffer.readLine())!=null){
              sb.append(line);
          }
       }catch(Exception e){
          e.printStackTrace();
       }finally{
          try{
          }catch(Exception e){
            e.printStackTrace();
          }
       }
       return sb.toString();
   }
   //-1: 下载出错  0:下载成功 1:文件已经存在
   pubblic int downFile(String urlStr,string path,String fileName){
       Inputstream inputStream=null;
       try{
          FileUtils fileUtils=new FileUtils();
          if(fileUtls.isFileExist(path+fileName)){
             return 1;
          }else{
             inputStream=getInputStreamFromUrl(urlStr);
             File resultFile=fileUtils.write2SDFromInput(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;
   }
  
}

public class FileUtils{
   private String SDPATH;
   public String getSDPATH(){
     return SDPATH;
   }
   public FileUtils(){
      SDPATH=Environment.getExternalStorageDirectory()+"/";
   }
   public File createSDFile(String fileName)throws IOException{
      File file=new File(SDPATH+fileName);
      file.createNewFile();
      return file;
   } 
   public File createSDDir(String dirName){
      File dir=new File(SDPATH+dirName);
      dir.mkdir();
      return dir;
   }
   public boolean isFileExist(String fileName){
      File file=new File(SDPATH+fileName);
      return file.exists();
   }
   public File write2SDFromInput(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();
      }finally{
         try{
             output.close();
         }catch(Exception e){
             e.printStackTrace();
         }
      }
      return file;
   }
}
分享到:
评论

相关推荐

    android学习笔记_01 - Android中以Jar文件形式来封装类库

    在开发过程中经常需要将一些代码封装后交付使用,尤其是一些公用函数类,可以给自己或他人复用,而不用...在Android中也可以实现此类需求,经过多方参考资料和测试,实现了通过下面的方式进行封装。 该文件含测试源码。

    Android开发学习笔记(整理)

    Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...

    Android学习笔记之AndroidManifest.xml文件解析

    Android学习笔记之AndroidManifest.xml文件解析

    Android学习笔记-Activity篇

    Android学习笔记-Activity篇 Contents Android学习笔记-Activity篇 1 一、activity创建: 1 二、在manifest.xml中声明activity: 1 三、启动activity 1 3.1 启动不带返回结果的Activity 1 3.2 启动带有返回结果的...

    android学习笔记(html完整版)目录

    目录,整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、apdapter等几乎全部内容...

    android学习笔记

    1.windows下为eclipse安装ADT和配置android SDK 2.Android学习笔记--控件&布局 3.android学习笔记--...6.android学习笔记--下载文件 7.android学习笔记--Content Provider 8.android学习笔记--XML文件解析 。。。。。

    android学习笔记(html完整版)

    整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、apdapter等几乎全部内容。非常...

    [转载]Android学习笔记(五):Activity和main.xml文件.doc

    [转载]Android学习笔记(五):Activity和main.xml文件

    【安卓项目】——新闻资讯类项目

    Android学习笔记(八)——数据存储(SD卡文件操作) Android学习笔记(九)——网络技术 Android学习笔记(十)——实现新闻列表案例 Android学习笔记(十一)——一些高级控件的使用 Android学习笔记(十二)——...

    Android学习笔记(二)App工程文件分析

    《 Android学习笔记(一)环境安装及第一个hello world 》 //www.jb51.net/article/52593.htm 创建完的工程文件如下图所示,本文对一些主要的文件进行分析。 src文件分析 App源文件如图: 打开源文件 MainActivity...

    Android学习笔记.doc

    新手安卓上路,(3) 卸载模拟器中的apk文件。操作步骤如下: a) 首先启动Android模拟器 b) 进入命令行模式。在命令行模式下进入Android SDK安装目录下面的platform-tools文件夹

    android 学习笔记6-HttpClient 多线程下载 断点续传 进度条 源码关联

    5、多线程下载-断点续传:使用临时文件记录当前下载的数据,下次读取文件开始下载 6、下载显示进度条-ProgressBar 7、在gitbub上面下载已经有支持断点续传功能的代码HttpUtils 8、源码关联-技巧,非常重要:

    Android学习笔记(一)

    Android应用目录剖析:  Src:存放Anrdoid 应用程序所有的程序源代码。  Gen:存放了Eclipse的ADT插件自动生成的R.java文件。R.java文件存放了各种资源与之相对应的资源编号(id)。

    Android学习笔记含JNI、USB和ftdi通信方式详解

    项目四 多线程文件下载 25 项目五 Android自定义树形菜单 26 项目六 高仿微信聊天 26 项目七 Android串口通信 26 1. Java层 26 2.JNI层 26 3.PC模拟MCU层 26 4.问题 26 1. arm串口通信问题 26 2. linux串口通信中...

    DEX文件学习笔记

    安卓DEX文件学习笔记,简单记录233333333333333666666

    Android零基础教程视频链接

    android基础教程,里边包括新版Android开发教程&笔记1--基础入门,Android开发教程&笔记2--基础入门二,Android开发教程&笔记3--环境...文件存取、数据库编程.Android开发教程+笔记13(待续)--应用、permission、资源

    Android知识体系-思维导图(学习笔记)

    这是我在学习过程中积累的Android体系和代码示例,以思维导图的方式呈现,打开该文件需要安装思维导图软件mindjet

    Android学习笔记之AndroidManifest.xml文件解析(详解)

    主要介绍了Android学习笔记之AndroidManifest.xml文件解析,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics