android通过url访问SD卡文件,Android根据URL下载文件保存到SD卡_丹大个儿的博客-程序员宅基地

技术标签: android通过url访问SD卡文件  

package org.hpg.weather.download;

import android.os.Environment;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

public class MainActivity extends ActionBarActivity {

private static final String TAG = "MainActivity";

String downloadUrl = "http://down.androidonline.net/upload/apkoldown/xiaomibianqian.apk";

String picUrl ="http://img01.mifile.cn/images/accs/xmjsb_11.jpg";

private Button button;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button) findViewById(R.id.download);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

new Thread(new Runnable() {

@Override

public void run() {

download();

}

}).start();

}

});

}

//下载具体操作

private void download() {

try {

URL url = new URL(downloadUrl);

//打开连接

URLConnection conn = url.openConnection();

//打开输入流

InputStream is = conn.getInputStream();

//获得长度

int contentLength = conn.getContentLength();

Log.e(TAG, "contentLength = " + contentLength);

//创建文件夹 MyDownLoad,在存储卡下

String dirName = Environment.getExternalStorageDirectory() + "/MyDownLoad/";

File file = new File(dirName);

//不存在创建

if (!file.exists()) {

file.mkdir();

}

//下载后的文件名

String fileName = dirName + "xiaomibianqian.apk";

File file1 = new File(fileName);

if (file1.exists()) {

file1.delete();

}

//创建字节流

byte[] bs = new byte[1024];

int len;

OutputStream os = new FileOutputStream(fileName);

//写数据

while ((len = is.read(bs)) != -1) {

os.write(bs, 0, len);

}

//完成后关闭流

Log.e(TAG, "download-finish");

os.close();

is.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36377516/article/details/117569451

智能推荐

Android内存管理(4)*官方教程 含「高效内存的16条策略」 Managing Your App's Memory..._banyinlve3147的博客-程序员宅基地

Managing Your App's Memory1.In this documentHow Android Manages MemorySharing MemoryAllocating and Reclaiming App MemoryRestricting App MemorySwitching AppsHow Your App ...

Android Studio开发环境搭建_YouAren的博客-程序员宅基地_androidstudio下载

1.安装Android Studio安装过程中请全程联网首先准备必要的软件Android Studio,建议去国内代理官网下载。网址:http://www.android-studio.org/下载之余,在D盘中新建文件夹Android,再在Android中新建文件夹AS和SDK。下载完成后双击打开Android Studio.exe点Next默认,Next更改AS的安装位置默认 Install取消勾选,Finish找到Android/AS/bin下的idea.prop

OK6410A 开发板 (八) 2 linux-5.11 OK6410A linux开发环境搭建___pop_的博客-程序员宅基地

要实现u-boot tftp uImage uImage 网络挂载 根文件系统1 TFTP服务器与客户端的安装2 NFS服务器的安装3 内核的配置4 文件系统的制作5 u-boot 环境变量的设置setenv gatewayip 10.10.11.254setenv ipaddr 10.10.11.120setenv serverip 10.10.11.59setenv bootcmd 'tftp 0x50008000 uImage;bootm 0x5

使用EF4.3构造一个清爽的基于POCO的ORM架构_oldbalck的博客-程序员宅基地

原文地址:http://www.cnblogs.com/ejiyuan/archive/2012/02/29/2373683.html 使用EF4.3构造一个清爽的基于POCO的ORM架构 EF正在成为一个优秀的ORM框架,4.1中就加入了Code First,当时带来的不少的惊喜,可是,4.1时,的Code First虽然可以不再依赖edmx,可是建立很多的,映射code,虽然这些code有...

简单几步看懂JQ事件绑定与解绑_空 白的博客-程序员宅基地

事件绑定eventName(function(){})绑定对应事件名的监听, 例如:$('#div').click(function(){});on(eventName, funcion(){})通用的绑定事件监听, 例如:$('#div').on('click', function(){})优缺点eventName: 编码方便, 但只能加一个监听, 且有的事件监听不支持on: 编码不方便, 可以添加多个监听, 且更通用事件解绑off(eventName)对某个元素的事

随便推点

java关键字override_java @override 全部报错_藥郎的博客-程序员宅基地

问.java @override 全部报错答:错误:在 eclipse 的新工作空间开发项目时,出现大面积方法编译错误。鼠标放在方法名上后显示让我们去掉 @override 注解原因:@Override 是 jdk5 引入的机制,但是不支持对接口的实现。认为这不是 override 而报错,jdk6 及1.6以上的版本修正了这个 bug,无论是对父类的方法覆盖还是对接口的实现都可加上 @Overr...

java createjpeg4_在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题_楽月的博客-程序员宅基地

在rh8 linux 下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片,XServer已启动。出现如下问题错误提示如下java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of ...

CInternetSession的简单使用_woshiyuanlei的博客-程序员宅基地

1. CInternetSession的简单使用CInternetSession session;CHttpFile *file = NULL;CString strURL = " http://www.20abcd.com";CString strHtml = "”;   //存放网页数据 try{       file = (CHttpFile*)session.O

导出oracle整个数据库,Oracle数据库导出整个Oracle数据库和导入整个oracle数据库命令..._大脸猫000111的博客-程序员宅基地

=====================================================================================tnsnames.ora# tnsnames.ora Network Configuration File: D:\05-sxylz_hmkj_yxgs\01-software\10-oracle\01-oracleSetup\o...

php 生存分析,科学网—生存分析案例 - 张洪磊的博文_weixin_39726873的博客-程序员宅基地

#!/usr/bin/Rscriptlibrary(survival)library(limma)file.create("survive.txt")#filestumors for (tumor in tumors){exp_file #read in filesrna=read.table(exp_file,header=TRUE,row.names=1,sep="t",stringsAsFa...

网络编程知识点梳理_小拳头的博客-程序员宅基地

1 你怎么理解HTTP协议2 HTTP和HTTPS的区别3 ISO七层网络模型五层网络模型TCPIP四层网络模型4 TCP和UDP的区别5 同步和异步阻塞和非阻塞长线程和短线程的区别6 现在要访问wwwbaiducom整个过程是怎样的6 IPTCP首部7 TCP三次握手及四次挥手8 DNS是什么本机使用DNS时是TCP连接还是UDP10 TCP如何保证可靠性1、 你怎么理解HTTP

推荐文章

热门文章

相关标签