当前位置: 代码迷 >> Android >> android 文件上载到SD卡中
  详细解决方案

android 文件上载到SD卡中

热度:72   发布时间:2016-05-01 16:51:54.0
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. */	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		btn = (Button) findViewById(R.id.btn1);		btn.setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				new Thread(runnable).start();			}		});	}	private Runnable runnable = new Runnable() {		@Override		public 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) { // 获取内容长度为0					throw 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();			}		}	};}

?下载文件时,需要访问网络,需要配置访问网络权限

  相关解决方案