文件下载 Http网络连接

来源:互联网 发布:orange数据挖掘软件 编辑:程序博客网 时间:2024/05/17 22:56
1.文件下载步骤:

1.1创建一个HttpURLConnection对象:HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();

1.2获得一个InputStream对象:urlConn.getInputStream()

1.3访问网络权限:android:permission.INTERNET

2代码:

2.1 DownloadActivity:

package com.van.Download;

 

import com.van.utils.HttpDownloader;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class DownloadActivityextends Activity

{

    privateButton downloadTextButton;

    privateButton downloadMp3Button;

   

    @Override

    publicvoid onCreate(Bundle savedInstanceState)

    {

       super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       downloadTextButton = (Button) findViewById(R.id.downloadText);

       downloadTextButton.setOnClickListener(listener);

       downloadMp3Button = (Button) findViewById(R.id.downloadMp3);

       downloadMp3Button.setOnClickListener(listener);

    }

    OnClickListenerlistener = new OnClickListener()

    {

       @Override

       public voidonClick(View arg0)

        {

           switch (arg0.getId())

            {

               case R.id.downloadText:

                    HttpDownloader httpDownloader1 =new HttpDownloader();

                    String lrc1 = httpDownloader1.download("http://wenku.baidu.com/submit");

                    System.out.println(lrc1);

                   break;

                caseR.id.downloadMp3:

                    HttpDownloader httpDownloader =new HttpDownloader();

                    String lrc = httpDownloader.download("");

                    System.out.println(lrc);

                   break;

           

        }

    };

}

2.2 HttpDownloader:

package com.van.utils;

 

import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

 

public class HttpDownloader

{

    privateURL url = null;

 

   

    publicString download(String urlStr)

    {

        StringBuffer sb =new StringBuffer();

        String line =null;

        BufferedReader buffer =null;

       try

        {

           // 创建一个URL对象

           url = new URL(urlStr);

           // 创建一个Http连接

            HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();

           // 使用IO流读取数据

            buffer =new BufferedReader(newInputStreamReader(urlConn.getInputStream()));

           while ((line = buffer.readLine()) != null)

            {

                sb.append(line);

            }

        }

       catch (MalformedURLException e)

        {

            e.printStackTrace();

        }

       catch (IOException e)

        {

            e.printStackTrace();

        }

       finally

        {

           try

            {

                buffer.close();

            }

           catch (IOException e)

            {

                e.printStackTrace();

            }

        }

       return sb.toString();

    }

 

   

    publicint downFile(String urlStr, String path, String fileName)

    {

        InputStream inputStream =null;

       try

        {

            FileUtils fileUtils =new FileUtils();

           if (fileUtils.isFileExist(path + fileName))

            {

               return 1;

            }

           else

            {

                inputStream = getInputStreamFromFUrl(urlStr);

            }

 

            File resultFile = fileUtils.write2SDFromInput(path, fileName, inputStream);

           if (resultFile == null)

            {

               return -1;

            }

        }

       catch (IOException e)

        {

            e.printStackTrace();

           return -1;

        }finally{

           try

            {

                inputStream.close();

            }

           catch (IOException e)

            {

                e.printStackTrace();

            }

        }

       return 0;

    }

 

   

    publicInputStream getInputStreamFromFUrl(String urlStr)throws IOException

    {

       url = new URL(urlStr);

        HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();

        InputStream inputStream = urlConn.getInputStream();

       return inputStream;

    }

 

}

2.3 FileUtils:

package com.van.utils;

 

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

 

import android.os.Environment;

 

public class FileUtils

{

    privateString SDPATH;

 

    publicString getSDPATH()

    {

       return SDPATH;

    }

 

    publicFileUtils()

    {

       // 的到当前外部存储设备的目录

       SDPATH = Environment.getExternalStorageDirectory() +"/";

    }

 

   

    publicFile creatSDFile(String fileName) throwsIOException

    {

        File file =new File(SDPATH + fileName);

        file.createNewFile();

       return file;

    }

 

   

    publicFile creatSDDir(String dirName)

    {

        File dir =new File(SDPATH + dirName);

        dir.mkdir();

       return dir;

    }

 

   

    publicboolean isFileExist(String fileName)

    {

        File file =new File(SDPATH + fileName);

       return file.exists();

    }

 

   

    publicFile write2SDFromInput(String path, String fileName, InputStream inputSteam)

    {

        File file =null;

        OutputStream output =null;

       try

        {

            creatSDDir(path);

            File f = creatSDFile(path + fileName);

            output =newFileOutputStream(f);

           byte buffer[] = new byte[4 * 1024];

           while ((inputSteam.read(buffer)) != -1)

            {

                output.write(buffer);

            }

            System.out.println(path);

            file =new File(path);

        }

       catch (IOException e)

        {

            e.printStackTrace();

        }

       finally

        {

           try

            {

                output.close();

            }

           catch (IOException e)

            {

                e.printStackTrace();

            }

        }

       return file;

    }

 

}

2.4 AndroidManifest.xml:

<?xmlversion="1.0"encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

      package="com.van.Download"

      android:versionCode="1"

      android:versionName="1.0">

    <uses-sdk android:minSdkVersion="8"/>

 

    <application android:icon="@drawable/icon"android:label="@string/app_name">

       <activity android:name=".DownloadActivity"

                 android:label="@string/app_name">

           <intent-filter>

               <action android:name="android.intent.action.MAIN"/>

               <category android:name="android.intent.category.LAUNCHER"/>

           </intent-filter>

       </activity>

    </application>

    <uses-permissionandroid:name="android.permission.INTERNET"/>[jhoo1]  

    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>[jhoo2] 


  [jhoo2] 写入的权限

</manifest>


  [jhoo1] 添加网络访问权限

原创粉丝点击