Android根据URL下载文件保存到SD卡
16lz
2021-01-23
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(); } }}
更多相关文章
- Git点赞82K!字节跳动保姆级Android学习指南,干货满满
- 根据文件名称修改安卓默认的蓝牙接收文件地址
- Android 取出 图片以字节形式存放到数据库的数据,并将图片显示
- Android gradle build 修改文件名称及目录
- 字节跳动正式启动2021届秋季校招!这份字节跳动历年校招Android面
- android 通过资源文件名称获取资源文件id
- Android Studio 3.0以后打包修改文件名方法
- Android将drawable图像转化为二进制字节数组与逆转换
- Android Studio设置apk文件名