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");
}
}
}
}