android 文件下载到SD卡中
我下载文件时,需要访问网络,在这里,添加了个线程
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();}}};}?下载文件时,需要访问网络,需要配置访问网络权限