Android——使用HTTP协议下载文件

涉及的其他知识:

1.StringBuffer概述

2.观察者模式

3.JAVA的IO流


使用HTTP协议下载文件分为以下几步:

1.创建一个URL对象
      url = new URL(“文件下载地址”)
2.创建一个HttpURLConnection对象
      HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
3.获得一个InputStream对象
      urlConn.getInputSream()

4.对InputStream对象进行操作,将读取到的流输入到StringBuffer中

5.输出StringBuffer


注:需要在Manifest文件中设置访问网络权限
<user-permission android:name = "android.permission.INTERNET"/>(在Minafest文件中)


文件访问SD卡:

1.得到当前设备SD卡的目录

Environment.getExternalStorageDirectroy()

2.访问SD卡的权限,添加在Manifest文件中

 <user-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE"/>



(1)下载纯文本文件——实现代码如下:


使用者可以调用downloadtxt("下载路径")来下载纯文本文件,返回值为String类型的数据。

另:必须在Manifest文件中添加访问权限




(2)下载任意格式文件:

若要下载任意格式的文件并将其保存在SD卡中需要添加如下功能

1.得到SD卡目录

       SDPATH = Environment.getExternalStorageDirectory() + "/";

2.在SD卡上创建目录
      File dir = new File(SDPATH + dirName);
      dir.mkdir();

3.在SD卡上创建文件

      File file = new File(SDPATH + fileName);
      file.createNewFile();

4.判断该文件在SD卡上是否存在

      File file = new File(SDPATH + fileName);
      return file.exists()

5.将得到的InputStream对象写入到SD卡中

     OutputStream output = new FileOutputStream(file);

     byte buffer [] = new byte[4*1024];
                while((input.read(buffer))!= -1){
                    output.write(buffer);
                }

    output.flush();

因此需要设计一个类来封装这些功能,类FileUtils实现代码如下:

另:必须在Manifest文件中添加访问权限


根据FileUtils类中提供的方法,判断路径中文件是否存在、建立目录和文件并将下载下来的文件写入到指定目录下的文件中

实现代码如下:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值