首页 > 技术文章 > 下载MP3并放在sdcard中

wulantuoyajr 2014-08-14 19:14 原文

首先在虚拟机中装入虚拟SDCARD,并匹配,然后在manifest.xml中设置对储存卡的读写权限。

mainactivity代码

 1 package com.example.downloadtext;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.os.Environment;
 6 import android.util.Log;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.Toast;
10 
11 import java.io.File;
12 import java.io.IOException;
13 import java.net.HttpURLConnection;
14 
15 public class MyActivity extends Activity
16     {
17     /**
18      * Called when the activity is first created.
19      */
20     static String sdcardpath = "/storage/sdcard/";
21     Button download;
22 
23     @Override
24     public void onCreate(Bundle savedInstanceState)
25         {
26         super.onCreate(savedInstanceState);
27         setContentView(R.layout.main);
28         download = (Button) findViewById(R.id.download);
29         download.setOnClickListener(new downloadListener());
30 
31 
32         }
33 
34 
35     class downloadListener implements View.OnClickListener
36     {
37         @Override
38 
39         public void onClick(View view)
40         {   Log.v("button","button has been clicked");
41              42             new DownloadThread().start();
43             File file = new File(sdcardpath + "song");
44             if (file.exists())
45                 {
46                 Toast.makeText(MyActivity.this, "download Sucess", Toast.LENGTH_LONG);//toast只能在ui进程中才能显示,所以这些都不能显示
47 
48                  }
49             else
50                  {
51                 Toast.makeText(MyActivity.this, "download failed", Toast.LENGTH_LONG);
52 
53                  }
54 
55         }
56 
57 
58     }
59 
60     class DownloadThread extends Thread
61     {
62         @Override
63         public void run() {
64             Log.v("thread","new thread is started");
65             Download downloadmp3 = new Download();
66             try
67                 {
68                 downloadmp3.downloadmp3("http://sc.111ttt.com/up/mp3/276964/2684CCF02022F454B9E67B5D35F9DDF0.mp3");
69                 }
70             catch (IOException e)
71                 {
72                 e.printStackTrace();
73                 }
74                 Log.v("thread","thread is overed");
75         }
76     }
77 }
Download类
package com.example.downloadtext;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.Buffer;
import java.nio.ByteBuffer;

/**
 * Created by Administrator on 2014/8/14.
 */
public class Download {


    public void downloadmp3(String urlpath)throws IOException

    {
        URL url = new URL(urlpath);
        HttpURLConnection urlconnection = (HttpURLConnection) url.openConnection();
        InputStream inputStream = urlconnection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        FileOutputStream fos = new FileOutputStream(new File(MyActivity.sdcardpath+"song"));
        String readed;
        while((readed =reader.readLine() )!=null)
        {
            fos.write(readed.getBytes());

        }
        fos.close();
        inputStream.close();
 
    }
 
}

 

 

推荐阅读