java android下载文件_Android利用Http下载文件

package linys.download;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import android.app.Activity;

import android.os.Bundle;

import android.os.Environment;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

/**

*

* @Project: Android_MyDownload

* @Desciption: 利用Http协议下载文件并存储到SDCard

1.创建一个URL对象

2.通过URL对象,创建一个HttpURLConnection对象

3.得到InputStream

4.从InputStream当中读取数据

存到SDCard

1.取得SDCard路径

2.利用读取大文件的IO读法,读取文件

*

* @Author: LinYiSong

* @Date: 2011-3-25~2011-3-25

*/

public class MyDownload extends Activity {

private Button downFileBtn;

private Button downMP3Btn;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

this.findViewById(R.id.downFile);

this.findViewById(R.id.downMP3);

downFileBtn.setOnClickListener(new DownFileClickListener());

new DownMP3ClickListener());

/**

*

* @Project: Android_MyDownload

* @Desciption: 只能读取文本文件,读取mp3文件会出现内存溢出现象

* @Author: LinYiSong

* @Date: 2011-3-25~2011-3-25

*/

class DownFileClickListener implements OnClickListener{

@Override

public void onClick(View v) {

"http://172.17.54.91:8080/download/down.txt";

try {

/*

* 通过URL取得HttpURLConnection

* 要网络连接成功,需在AndroidMainfest.xml中进行权限配置

*/

new URL(urlStr);

//取得inputStream,并进行读取

BufferedReader in=new BufferedReader(new InputStreamReader(input));

null;

new StringBuffer();

while((line=in.readLine())!=null){

}

catch (MalformedURLException e) {

} catch (IOException e) {

}

}

/**

*

* @Project: Android_MyDownload

* @Desciption: 读取任意文件,并将文件保存到手机SDCard

* @Author: LinYiSong

* @Date: 2011-3-25~2011-3-25

*/

class DownMP3ClickListener implements OnClickListener{

@Override

public void onClick(View v) {

"http://172.17.54.91:8080/download/1.mp3";

"file";

"2.mp3";

null;

try {

/*

* 通过URL取得HttpURLConnection

* 要网络连接成功,需在AndroidMainfest.xml中进行权限配置

*/

new URL(urlStr);

//取得inputStream,并将流中的信息写入SDCard

/*

* 写前准备

* 1.在AndroidMainfest.xml中进行权限配置

* 取得写入SDCard的权限

* 2.取得SDCard的路径: Environment.getExternalStorageDirectory()

* 3.检查要保存的文件上是否已经存在

* 4.不存在,新建文件夹,新建文件

* 5.将input流中的信息写入SDCard

* 6.关闭流

*/

"";

"/"+path+"/"+fileName;//文件存储路径

File file=new File(pathName);

if(file.exists()){

"exits");

return;

else{

"/"+path;

new File(dir).mkdir();//新建文件夹

//新建文件

new FileOutputStream(file);

//读取大文件

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

while(input.read(buffer)!=-1){

}

}

catch (MalformedURLException e) {

} catch (IOException e) {

}finally{

try {

System.out.println("success");

catch (IOException e) {

"fail");

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值