android 文件下载到SD卡中
16lz
2021-01-24
我下载文件时,需要访问网络,在这里,添加了个线程
package com.action;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class Main extends Activity {private Button btn;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn = (Button) findViewById(R.id.btn1);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new Thread(runnable).start();}});}private Runnable runnable = new Runnable() {@Overridepublic void run() {try {String fileName = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/img3.jpg";System.out.println("fileName:" + fileName);String url = "http://hiphotos.baidu.com/%B7%E5%B7%E5%CD%C3/pic/item/769ab3eec5ce730c2cf534a1.jpg";URL Url = new URL(url);URLConnection conn = Url.openConnection();conn.connect();InputStream is = conn.getInputStream();int fileSize = conn.getContentLength();if (fileSize <= 0) { // 获取内容长度为0throw new RuntimeException("无法获知文件大小 ");}if (is == null) { // 没有下载流throw new RuntimeException("无法获取文件");}FileOutputStream fos = new FileOutputStream(fileName); // 创建写入文件内存流,通过此流向目标写文件byte buf[] = new byte[1024];int downLoadFilePosition = 0;int numread;while ((numread = is.read(buf)) != -1) {fos.write(buf, 0, numread);downLoadFilePosition += numread;}is.close();} catch (IOException e) {e.printStackTrace();}}};}
下载文件时,需要访问网络,需要配置访问网络权限
更多相关文章
- 安卓微信第三方登陆
- java android 删除文件和文件夹的函数
- 安装Android(安卓)SDK
- Android:网络图片Url 转 Bitmap
- Android设计开发要必用的Color.xml文件整理
- Android使用本地缓存解析远程服务器JSON数据
- Android中java.lang.ClassNotFoundException: ***.**** in loade
- Android中取消系统标题栏的几种方式
- Android中的SharedPreference源码整理总结