Android 将文件下载到指定目录的实现代码
作者:走着学磔 发布时间:2021-06-11 04:44:41
标签:android,文件,下载,目录
废话不多说了额,直接给大家贴代码了,具体代码如下所示:
/**
* 下载指定路径的文件,并写入到指定的位置
*
* @param dirName
* @param fileName
* @param urlStr
* @return 返回0表示下载成功,返回1表示下载出错
*/
public int downloadFile(String dirName, String fileName, String urlStr) {
OutputStream output = null;
try {
//将字符串形式的path,转换成一个url
URL url = new URL(urlStr);
//得到url之后,将要开始连接网络,以为是连接网络的具体代码
//首先,实例化一个HTTP连接对象conn
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//定义请求方式为GET,其中GET的大小写不要搞错了。
conn.setRequestMethod("GET");
//定义请求时间,在ANDROID中最好是不好超过10秒。否则将被系统回收。
conn.setConnectTimeout(6 * 1000);
//请求成功之后,服务器会返回一个响应码。如果是GET方式请求,服务器返回的响应码是200,post请求服务器返回的响应码是206(貌似)。
if (conn.getResponseCode() == 200) {
//返回码为真
//从服务器传递过来数据,是一个输入的动作。定义一个输入流,获取从服务器返回的数据
InputStream input = conn.getInputStream();
File file = createFile(dirName + fileName);
output = new FileOutputStream(file);
//读取大文件
byte[] buffer = new byte[1024];
//记录读取内容
int n = input.read(buffer);
//写入文件
output.write(buffer, 0, n);
n = input.read(buffer);
}
output.flush();
input.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
output.close();
System.out.println("success");
return 0;
} catch (IOException e) {
System.out.println("fail");
e.printStackTrace();
}
}
return 1;
}
/**
* 在SD卡的指定目录上创建文件
*
* @param fileName
*/
public File createFile(String fileName) {
File file = new File(fileName);
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
以上所述是小编给大家介绍的Android 将文件下载到指定目录的实现代码网站的支持!
来源:http://blog.csdn.net/wei8023hzp/article/details/73614811


猜你喜欢
- Cocos2d-x引擎的核心是用C++编写的,那对于所有使用该引擎的游戏开发人员来说,内存管理是一道绕不过去的坎。关于Cocos2d-x内存
- 什么是fescar?关于fescar的详细介绍,请参阅fescar wiki。传统的2PC提交协议,会持有一个全局性的锁,所有局部事务预提交
- 1.用途在SpringBoot中,通过jasypt可以进行加密解密. 这个是双向的, 且可以配置密钥.2.使用:2.1通过UT创建工具类,并
- 前言结果映射指的是将数据表中的字段与实体类中的属性关联起来,这样 MyBatis 就可以根据查询到的数据来填充实体对象的属性,帮助我们完成赋
- 目录基本查询延迟查询属性类型筛选复合from子句多级排序分组联合查询-join合并-zip()分区(分页)并行linq取消长时间运行的并行l
- 一、日志1、配置日志级别日志记录器(Logger)的行为是分等级的。如下表所示:分为:OFF、FATAL、ERROR、WARN、INFO、D
- 目录前沿快速开始引入依赖定义接口配置类开始调用json序列化接口层面指定header:指定Encoder跟Decoder使用 * 注解详解@
- java怎么判断三位数先定义个测试数字,如图然后可以把数字转换成字符串来判断它的长度是否为3,如图获取判断数字范围是否在100到1000之间
- 判断字符串是否为IP地址通常都是基于正则表达式实现的,无论是引入外部的依赖包亦或是自己写正则实现,基本都是基于正则表达式实现的判断。然而比较
- springboot集成RabbitMQ非常简单,如果只是简单的使用配置非常少,springboot提供了spring-boot-start
- 1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立
- 使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找
- 本文实例讲述了WinForm调用jar包的方法。分享给大家供大家参考,具体如下:因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接
- 在软件开发过程中经常需要知道程序运行的大概时间,或者需要在规定时间内取数据,这是可以使用下面的方法获取时间段,还可以用在限时循环方法一:/*
- 1.内容中含有xml预定好的实体,如“<”和“&”,对xml来说是禁止使用的,针对这种字符,解决方式是使用CDATA部件以&q
- 本文实例为大家分享了java http token的具体代码,供大家参考,具体内容如下package com.monitoring.comm
- 本实例是为了实现在管理后台实现微信菜单的添加删除管理。1、首先我们需要新建一个数据库表用于存放menu菜单项可包含的字段有id、父类id、n
- Android开发笔记:关于SeekBar在刷新使用中的一些问题问题今天在用Navigation 在两个Fragment之间导航时发现了从第
- 1,创建存储过程create proc Pro_Login(@UserName nvarchar(10),@PassWord nvarcha
- 本文实例讲述了Android使用Sensor感应器实现线程中刷新UI创建android测力计的功能。分享给大家供大家参考,具体如下:前面一篇