Android http下载文件

1.权限

View Code
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

2.code

View Code
public void downloadHttp(String downLoadUrl) {
    String urlStr = downLoadUrl;
    String path = "file";
    String fileName = "test.mp3";
    OutputStream output = null;
    try {
        /*
         * 通过URL获取HttpURLConnection 要网络连接成功,需要在xml中进行配置网络权限 <uses-permission
         * android:name="android.permission.INTERNET"/>
         */
        URL url = new URL(urlStr);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        /*
         * 
         */
        String SDCard = Environment.getExternalStorageDirectory().toString();
        String pathName = SDCard + "/" + path + "/" + fileName;// 储存文件路径

        File file = new File(pathName);
        InputStream input = conn.getInputStream();
        if (file.exists()) {
        // 文件已经存在
        return;
        } else {
        String dir = SDCard + "/" + path;
        new File(dir).mkdir();
        file.createNewFile();
        output = new FileOutputStream(file);
        // 读取文件
        byte[] buffer = new byte[8 * 1024];
        while (input.read(buffer) != -1) {
            output.write(buffer);
        }
        output.flush();
        }
    } catch (MalformedURLException e) {
        // TODO: handle exception
        e.printStackTrace();
    } catch (IOException e) {
        // TODO: handle exception
        e.printStackTrace();
    } finally {
        try {
        output.close();

        } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        }
    }

    }

 

posted @ 2013-04-09 16:20  double0zhou  阅读(180)  评论(0编辑  收藏  举报