package com.example.administrator.myapplication;​import android.os.Bundle;import android.os.Environment;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * 原生代码下载文件实例 */public class MainActivity extends ActionBarActivity {    private ImageView imageView;    private EditText editText;    private Button button;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        imageView = (ImageView) findViewById(R.id.imageView);        editText = (EditText) findViewById(R.id.editText);        button = (Button) findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                final String path = Environment.getExternalStorageDirectory().getPath() + "/AAAAImg/";                new Thread(new Runnable() {                    @Override                    public void run() {                        try {                            downLoadFromUrl(editText.getText().toString(), "123.jpg", path);                        } catch (Exception e) {                            e.printStackTrace();                        }                    }                }).start();            }        });    }    /**     * 从网络Url中下载文件     *     * @param urlStr     * @param fileName     * @param savePath     * @throws IOException     */    public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {        URL url = new URL(urlStr);        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        //设置超时间为3秒        conn.setConnectTimeout(3 * 1000);        //防止屏蔽程序抓取而返回403错误        conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");        //得到输入流        InputStream inputStream = conn.getInputStream();        //获取自己数组        byte[] getData = readInputStream(inputStream);        //文件保存位置        File saveDir = new File(savePath);        if (!saveDir.exists()) {            saveDir.mkdir();        }        File file = new File(saveDir + File.separator + fileName);        FileOutputStream fos = new FileOutputStream(file);        fos.write(getData);        if (fos != null) {            fos.close();        }        if (inputStream != null) {            inputStream.close();        }        System.out.println("info:" + url + " download success");    }    /**     * 从输入流中获取字节数组     *     * @param inputStream     * @return     * @throws IOException     */    public static byte[] readInputStream(InputStream inputStream) throws IOException {        byte[] buffer = new byte[1024];        int len = 0;        ByteArrayOutputStream bos = new ByteArrayOutputStream();        while ((len = inputStream.read(buffer)) != -1) {            bos.write(buffer, 0, len);        }        bos.close();        return bos.toByteArray();    }}

更多相关文章

  1. 模拟抽奖的九宫格动画效果
  2. Android表单获取值的三种方式
  3. android 文件的压缩和解压
  4. Android获取应用程序名称(ApplicationName)
  5. 获取Fragment的context
  6. 83 Android(安卓)Handler ProgressBar 进度条
  7. Android文件操作放到listview中
  8. Android获取移动设备IP地址
  9. Android(安卓)APK下载安装(自动更新)

随机推荐

  1. Android安全机制解析与应用实践
  2. Android开机广播和关机广播
  3. android源代码编译
  4. BiliBili-IJKPlayer播放器源码分析(一)
  5. Android(安卓)NDK 编译、使用动态库
  6. Android(安卓)Activity 及其子类
  7. Android学习笔记(2):Hello world
  8. Android(安卓)zip文件压缩解压
  9. [Android] Status Bar Notifications
  10. AndroidManifest.xml 不同变量的作用(持续