现在的位置: 首页 > 综合 > 正文

Android _文件下载

2013年08月08日 ⁄ 综合 ⁄ 共 4057字 ⁄ 字号 评论关闭

 Android 文件下载,在Android开发中很长用到,经常需要在应用程序中下载所需要的文件比如电子书,MP3格式的音乐文件,电影等。我在这里总结了一下,以后要用时可以直接拷贝,

代码分析:

  有两个工具类,HttpDownloader.java类中定义两个下载方法,download(String urlstr)下载纯文本文件,downfile(String urlStr,String path,String fileName)下载字节文件类。FileUtils.java类定义了写入sd卡的操作。Download.java类为主线程类,两个按钮,监听下载事件。

注意:

     在AndroidManifest.xml中添加网络访问权限

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

     在AndroidManifest.xml中加入访问SDCard的权限

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

代码:

   main.xml

[java] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="Android_hello word"  
  11.     />  
  12. <Button  
  13.     android:id="@+id/buttontxt"  
  14.     android:layout_width="300dp"  
  15.     android:layout_height="wrap_content"  
  16.     android:text="单击下载txt文件"  
  17.     />  
  18. <Button  
  19.     android:id="@+id/buttonmp3"  
  20.     android:layout_width="300dp"  
  21.     android:layout_height="wrap_content"  
  22.     android:text="单击下载mp3文件"  
  23.     />  
  24. </LinearLayout>  


  Download.java

[java] view
plain
copy

  1. package com.example.download;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5.   
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9.   
  10. public class Download extends Activity {  
  11.     private Button buttontxt;  
  12.     private Button buttonmp3;  
  13.   
  14.     @Override  
  15.     protected void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.activity_download);  
  18.         buttontxt = (Button) findViewById(R.id.buttontxt);  
  19.         buttontxt.setOnClickListener(new OnClickListener() {  
  20.   
  21.             public void onClick(View v) {  
  22.                 // TODO Auto-generated method stub  
  23.                 // TODO Auto-generated method stub  
  24.                 // 创建一个匿名线程用于下载文件  
  25.                 new Thread() {  
  26.                     public void run() {  
  27.                         HttpDownloader httpDownloader = new HttpDownloader();  
  28.                         // 调用httpDownloader对象的重载方法download下载txt文件  
  29.                         String txt = httpDownloader  
  30.                                 .download("http://www.baidu.com/");  
  31.                         System.out.println(txt);  
  32.                     }  
  33.                 }.start();  
  34.             }  
  35.   
  36.         });  
  37.   
  38.         buttonmp3 = (Button) findViewById(R.id.buttonmp3);  
  39.         // 为buttonmp3添加单击事件监听器  
  40.         buttonmp3.setOnClickListener(new OnClickListener() {  
  41.   
  42.             /* 
  43.              * (non-Javadoc) 
  44.              *  
  45.              * @see android.view.View.OnClickListener#onClick(android.view.View) 
  46.              */  
  47.             @Override  
  48.             public void onClick(View v) {  
  49.                 // TODO Auto-generated method stub  
  50.                 new Thread() {  
  51.                     public void run() {  
  52.                         try {  
  53.                             HttpDownloader httpDownloader = new HttpDownloader();  
  54.                             // 调用httpDownloader对象的重载方法download下载mp3文件  
  55.                             int result = httpDownloader  
  56.                                     .downfile(  
  57.                                             "http://sjrjy.apkzz.net/201011/291354164ea84578066309.jpg",  
  58.                                             "Android/""9.jpg");  
  59.                             System.out.println(result);  
  60.                         } catch (Exception e) {  
  61.                             e.printStackTrace();  
  62.                         }  
  63.                     }  
  64.                 }.start();  
  65.   
  66.             }  
  67.         });  
  68.     }  
  69.   
  70. }  


  HttpDownloader.java

[java] view
plain
copy

  1. package com.example.download;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.File;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.io.InputStreamReader;  
  8. import java.net.HttpURLConnection;  
  9. import java.net.URL;  

抱歉!评论已关闭.