1.权限
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2.code
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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(); } } }