`
童梦新苑
  • 浏览: 41020 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android 下载程序

阅读更多

HttpDownloader 文件:

package zhou.demo.download;

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.URL;

public class HttpDownloader {
 private URL url = null;
 
 public String download(String urlStr){
  StringBuffer sb = new StringBuffer();
  String line = null;
  BufferedReader buffer = null;
  try {
   url = new URL(urlStr);
   HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
   buffer = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));
   while((line = buffer.readLine()) != null){
    sb.append(line);
   }
  } catch (Exception e) {
   e.printStackTrace();
  }finally{
   try {
    buffer.close();
   } catch (Exception e2) {
    e2.printStackTrace();
   }
  }
  return sb.toString();
 }
 
 public int downFile(String urlStr, String path, String fileName){
  InputStream inputStream = null;
  try {
   FileUtils fileUtils = new FileUtils();
   if(fileUtils.isFileExist(path + fileName)){
    return 1;
   }else{
    inputStream = getInputStreamFromUrl(urlStr);
    File resultFile = fileUtils.write2SDFromInput(path, fileName, inputStream);
    if(resultFile == null){
     return -1;
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
   return -1;
  }finally{
   try {
    inputStream.close();
   } catch (Exception e2) {
    e2.printStackTrace();
   }
  }
  return 0;
 }
 
 /**
  * 根据URL得到输入流
  * @throws IOException 
  */
 public InputStream getInputStreamFromUrl(String urlStr) throws IOException{
  HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
  InputStream inputStream = urlConn.getInputStream();
  return inputStream;
 }
}

 

 

 

 

 

package zhou.demo.download;

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 {
 private String SDPATH;
 public String getSDPATH(){
  return SDPATH;
 }
 public FileUtils(){
  //得到当前外部储存设备的目录   (***兼容写法***)
  SDPATH = Environment.getExternalStorageDirectory() + "/";
 }
 public File createSDFile(String fileName) throws IOException{
  File file = new File(SDPATH + fileName);
  file.createNewFile();
  return file;
 }
 /**
  * 在SD上创建目录
  * @param dirName
  * @return
  */
 public File createSDDir(String dirName){
  File dir = new File(SDPATH + dirName);
  dir.mkdir();
  return dir;
 }
 
 /**
  * 判断SD上的文件夹是否存在
  */
 public boolean isFileExist(String fileName){
  File file = new File(SDPATH + fileName);
  return file.exists();
 }
 
 /**
  * 将数据传入SD里面
  */
 public File write2SDFromInput(String path, String fileName, InputStream input){
  File file = null;
  OutputStream output = null;
  try {
   createSDDir(path);
   file = createSDFile(path + fileName);
   output = new FileOutputStream(file);
   byte buffer[] = new byte[4*1024];
   while(input.read(buffer) != -1){
    output.write(buffer);
   }
   output.flush();
  } catch (Exception e) {
   e.printStackTrace();
  }finally{
   try {
    output.close();
   } catch (Exception e2) {
    // TODO: handle exception
   }
  }
  return file;
 }
}

  

 

package zhou.demo.download;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class DownLoad extends Activity {
    private Button textButton;
    private Button mp3Button;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        textButton = (Button)this.findViewById(R.id.txt_button);
        mp3Button = (Button)this.findViewById(R.id.mp3_button);
        
        textButton.setOnClickListener(new OnClickListener(){

   @Override
   public void onClick(View v) {
    // TODO Auto-lgenerated method stub
    HttpDownloader httpDownloader = new HttpDownloader();
    String lrc = httpDownloader.download("http://192.168.1.1:8060");
    System.out.println(lrc);
   }
         
        });
        
        mp3Button.setOnClickListener(new OnClickListener(){

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    HttpDownloader httpDownloader = new HttpDownloader();
    int result = httpDownloader.downFile("http://mp3","voa/","a1.mp3");
    System.out.println(result);
   }
         
        });
    }
}

 布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    
<Button
	android:id="@+id/txt_button"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:text="@string/txt_button_name"
	/>
<Button
	android:id="@+id/mp3_button"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:text="@string/mp3_button_name"
	/>
</LinearLayout>

 

分享到:
评论

相关推荐

    《Android应用程序开发教程(第2版)》教学课件02Android UI设计.pdf

    《Android应用程序开发教程(第2版)》教学课件02Android UI设计.pdf《Android应用程序开发教程(第2版)》教学课件02Android UI设计.pdf《Android应用程序开发教程(第2版)》教学课件02Android UI设计.pdf《Android应用...

    Android应用程序开发

    - 下载最新版本的Android Studio并进行安装。 - 在安装过程中可以选择安装所需的SDK组件,包括API级别等。 ##### 4. 配置Android SDK - Android Studio安装完成后会自动配置好SDK环境。 - 用户也可以手动管理SDK...

    一个支持暂停下载的断点续传Android源码

    Android断点续传及网格文件下载的Java实例源代码,支持在暂停下载后继续下载,现在很多下载软件普遍都使用的功能,在Android手机软件中应用断点续传技术也是很有必要的。通过这个Android源码可学习一下如何基于Java...

    Android 程序锁源码下载

    Android 程序锁源码下载 摘要:Java源码,Android,Android,源码下载  Android 程序锁,Android小软件JAva源码下载,锁程序,锁屏用的,Java源码供Android程序开发者参考学习和交流

    Android示例程序Snake贪吃蛇代码

    【Android 示例程序 Snake 贪吃蛇代码】是一款经典的Android平台上的游戏开发示例,它基于Java编程语言实现,展示了如何在Android环境中构建一个简单的2D游戏。此项目旨在帮助开发者理解和学习Android游戏开发的基本...

    Android应用程序开发 代码与PPT

    1. **环境搭建**:开发Android应用首先需要安装Android Studio,它是Google提供的官方集成开发环境(IDE),包含了SDK Manager、AVD Manager等工具,用于下载和管理Android SDK组件以及创建虚拟设备进行测试。...

    android应用程序 宅男志全集

    《Android应用程序:宅男志全集》是一款专为Android用户设计的应用程序集合,包含了多个版本的宅男志及相关图库应用。这个应用合集显然深受宅文化爱好者的欢迎,其多版本的提供显示了开发者对产品不断更新和完善的...

    10个实用Android应用程序源码下载

    学习Android最快的方法就是先研究例子,下面是十个打包好的案例,供大家下载学习。 1、 图片浏览器(Picture Viewer) 2 、文件浏览器(File Browser) 3 、通讯录(Contact) 4 、任务管理器(Task Manager) 5 、...

    Lazarus开发Android应用程序指南2017版

    Lazarus可以用于开发跨平台应用程序,并且从2017年开始,其功能也扩展到了开发Android应用上。 在Lazarus开发Android应用程序的过程中,首先需要准备和配置好开发环境。本指南主要针对Windows操作系统(7、8、10等...

    很经典的8个Android程序

    这些资料涵盖了Android应用程序开发的关键知识点,对于学习和理解Android编程非常有帮助。下面将逐一解析这些标签和可能涉及的技术点: 1. **Android**: Android是一个开源的移动操作系统,由Google领导并维护。它...

    Android应用程序开发教程Android Studio版

    Android应用程序开发教程Android Studio版

    88个经典Android应用程序打包下载【精品】

    在Android开发领域,学习和研究经典的Android应用程序是提升技能、理解设计模式以及最佳实践的有效途径。这个资源包包含了88个经典应用的源代码,对于初学者来说,这是一个宝贵的资料库,可以深入学习并理解Android...

    Lazarus开发Android应用程序指南

    ### Lazarus开发Android应用程序指南 #### 一、引言 随着移动互联网的快速发展,Android操作系统因其开放性和灵活性而成为智能手机和平板电脑市场的主导者之一。为了满足开发者的需求,多种编程工具和技术应运而生...

    android计算器程序设计

    《Android计算器程序设计详解》 Android计算器程序设计是一项基础但重要的技能,它是移动应用开发学习过程中的经典案例。本文将围绕这个主题,深入探讨如何在Android平台上构建一个功能完备的计算器应用。 首先,...

    Android程序设计基础教程 (高凯 编著)

    Android程序设计基础教程 (高凯 编著) Android程序设计基础教程

    练手的android闹铃程序

    apk文件包含了所有必要的资源、代码和元数据,使得用户可以直接下载安装并使用该闹钟程序。 总结来说,这个Android闹钟程序项目涵盖了Android应用开发的基础知识,如使用AlarmManager设置定时事件,...

    android小程序源码

    开发者需要下载并配置SDK,包括设置Android Studio IDE,安装必要的平台工具和构建工具,以及设置Android Virtual Device (AVD) 来进行模拟器测试。 2. **Android Studio与项目创建** Android Studio是Google提供...

    Lazarus开发Android应用程序指南(中文首发版)

    ### Lazarus开发Android应用程序指南知识点详解 #### 环境搭建 **下载安装JDK** - 开发Android应用的首要条件是安装Java开发工具包(JDK),可以从Oracle官网下载,选择合适的版本以匹配开发需求。 **下载安装...

    《Android应用程序开发与典型案例》高清版

    《Android应用程序开发与典型案例》是一本专为Android开发者编写的实战型教材,旨在帮助学习者深入理解Android应用的开发流程,并通过丰富的实际案例提升技能。这本书由华清远见教育集团出版,是Android培训课程中的...

Global site tag (gtag.js) - Google Analytics