返回顶部
首页 > 资讯 > 移动开发 >Android实现下载文件功能的方法
  • 1074
分享到

Android实现下载文件功能的方法

方法Android 2022-06-06 10:06:27 1074人浏览 薄情痞子
摘要

本文所述为Android实现下载文件功能的完整示例代码,对于学习和研究android编程相信会有一定的帮助,尤其是对Android初学者有一定的借鉴价值。 完整功能代码如下:

本文所述为Android实现下载文件功能的完整示例代码,对于学习和研究android编程相信会有一定的帮助,尤其是对Android初学者有一定的借鉴价值。

完整功能代码如下:


package com.test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.WEBkit.URLUtil;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Main extends Activity {
 private TextView mTextView01;
 private EditText mEditText01;
 private Button mButton01;
 private static final String TAG = "DOWNLOADAPK"; 
 private String currentFilePath = ""; 
 private String currentTempFilePath = ""; 
 private String strURL="";
 private String fileEx="";
 private String fileNa="";
 public void onCreate(Bundle savedInstanceState) 
 { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
  mTextView01 = (TextView)findViewById(R.id.myTextView1);
  mButton01 = (Button)findViewById(R.id.myButton1);
  mEditText01 =(EditText)findViewById(R.id.myEditText1);
  mButton01.setOnClickListener(new Button.OnClickListener()
  {
  public void onClick(View v) 
  {
   // 文件会下载至local端 
   mTextView01.setText("下载中...");
   strURL = mEditText01.getText().toString(); 
   
   fileEx = strURL.substring(strURL.lastIndexOf(".")
   +1,strURL.length()).toLowerCase();
   fileNa = strURL.substring(strURL.lastIndexOf("/")
   +1,strURL.lastIndexOf("."));
   getFile(strURL);
   }
  }
  );
  mEditText01.setOnClickListener(new EditText.OnClickListener()
  {
  public void onClick(View arg0){
   mEditText01.setText("");
   mTextView01.setText("远程安装程序(请输入URL)");
  }
  });
 }
 
 private void getFile(final String strPath) {
  try
  {
  if (strPath.equals(currentFilePath) )
  { 
   getDataSource(strPath);
  }
  currentFilePath = strPath;
  Runnable r = new Runnable()
  {
   public void run()
   {
   try
   {
    getDataSource(strPath);
   }
   catch (Exception e)
   {
    Log.e(TAG, e.getMessage(), e);
   }
   }
  };
  new Thread(r).start();
  } 
  catch(Exception e) 
  { 
  e.printStackTrace(); 
  }
 } 
   
 private void getDataSource(String strPath) throws Exception 
 { 
  if (!URLUtil.isNetworkUrl(strPath)) 
  { 
  mTextView01.setText("错误的URL"); 
  } 
  else 
  { 
  
  URL myURL = new URL(strPath);
  
  URLConnection conn = myURL.openConnection();
  conn.connect();
  
  InputStream is = conn.getInputStream();
  if (is == null) 
  { 
   throw new RuntimeException("stream is null"); 
  } 
   
  File myTempFile = File.createTempFile(fileNa, "."+fileEx);
  
  currentTempFilePath = myTempFile.getAbsolutePath();
   
  FileOutputStream fos = new FileOutputStream(myTempFile);
  byte buf[] = new byte[128];
  do
  {
   int numread = is.read(buf);
   if (numread <= 0)
   {
   break;
   }
   fos.write(buf, 0, numread);
  }while (true);
  
  openFile(myTempFile);
  try 
  { 
   is.close(); 
  } 
  catch (Exception ex) 
  { 
   Log.e(TAG, "error: " + ex.getMessage(), ex); 
  } 
  }
 }
 
 private void openFile(File f) 
 {
  Intent intent = new Intent();
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  intent.setAction(android.content.Intent.ACTION_VIEW);
  
  String type = getMIMEType(f);
  
  intent.setDataAndType(Uri.fromFile(f),type);
  startActivity(intent); 
 }
 
 private String getMIMEType(File f) 
 { 
  String type="";
  String fName=f.getName();
  
  String end=fName.substring(fName.lastIndexOf(".")
  +1,fName.length()).toLowerCase(); 
  
  if(end.equals("m4a")||end.equals("mp3")||end.equals("mid")||
  end.equals("xmf")||end.equals("ogg")||end.equals("wav"))
  {
  type = "audio"; 
  }
  else if(end.equals("3gp")||end.equals("mp4"))
  {
  type = "video";
  }
  else if(end.equals("jpg")||end.equals("gif")||end.equals("png")||
  end.equals("jpeg")||end.equals("bmp"))
  {
  type = "image";
  }
  else if(end.equals("apk")) 
  { 
   
  type = "application/vnd.android.package-arcHive"; 
  } 
  else
  {
  type="*";
  }
  
  if(end.equals("apk")) 
  { 
  } 
  else 
  { 
  type += "
 private void delFile(String strFileName) 
 { 
  File myFile = new File(strFileName); 
  if(myFile.exists()) 
  { 
  myFile.delete(); 
  } 
 } 
 
 protected void onPause()
 {
  mTextView01 = (TextView)findViewById(R.id.myTextView1);
  mTextView01.setText("下载成功");
  super.onPause();
 }
  
 protected void onResume() 
 { 
   
  delFile(currentTempFilePath); 
  super.onResume(); 
 }
}

读者可以在该实例的基础上进行修改与完善,使之更符合自身项目需求。

您可能感兴趣的文章:Android 下载文件通知栏显示进度条功能的实例代码Android中使用AsyncTask实现下载文件动态更新进度条功能android中实现OkHttp下载文件并带进度条android实现多线程下载文件(支持暂停、取消、断点续传)Android实现Service下载文件,Notification显示下载进度的示例使用Android系统提供的DownloadManager来下载文件Android通过Socket下载文件的方法Android实现多线程下载文件的方法Android使用Handler实现下载文件功能


--结束END--

本文标题: Android实现下载文件功能的方法

本文链接: https://lsjlt.com/news/26995.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android实现下载文件功能的方法
    本文所述为Android实现下载文件功能的完整示例代码,对于学习和研究android编程相信会有一定的帮助,尤其是对Android初学者有一定的借鉴价值。 完整功能代码如下: ...
    99+
    2022-06-06
    方法 Android
  • Android中怎么实现文件下载功能
    今天就跟大家聊聊有关Android中怎么实现文件下载功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。普通单线程下载文件:直接使用URLConnection.openStream()...
    99+
    2023-05-31
    android
  • php实现文件下载功能的方法是什么
    本篇内容主要讲解“php实现文件下载功能的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php实现文件下载功能的方法是什么”吧!一、实现文件下载的基本原理在PHP中,实现文件下载的原理...
    99+
    2023-07-06
  • Android实现文件下载进度显示功能
    和大家一起分享一下学习经验,如何实现Android文件下载进度显示功能,希望对广大初学者有帮助。 先上效果图:    上方的蓝色进度条,会根据文件下载量的百分比进行加载,中部的...
    99+
    2022-06-06
    Android
  • iOS实现文件下载功能
    本文实例为大家分享了iOS实现文件下载的具体代码,供大家参考,具体内容如下 说明: 1).获取网络文件大小; 2).开启循环,计算每段position开始与结束位置,通过Range头...
    99+
    2024-04-02
  • Servlet实现文件下载功能
    本文实例为大家分享了Servlet实现文件下载的具体代码,供大家参考,具体内容如下把文件目录直接暴露给用户是很不安全的。所以要用Servlet来做,而且这样做,文件的存储方式就更丰富了,可以是从文件系统上取来的,也可以是数据库中经过计算生成...
    99+
    2023-05-30
    servlet 文件下载 实现文件
  • django 实现文件下载功能
    在实际的项目中很多时候需要用到下载功能,如导excel、pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载。前端实现方式a标签+响应头信息<a ...
    99+
    2023-01-31
    功能 文件 django
  • Android如何实现下载m3u8视频文件功能
    本篇内容主要讲解“Android如何实现下载m3u8视频文件功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android如何实现下载m3u8视频文件功能”吧!简介Aria下载器采用开源框架A...
    99+
    2023-07-05
  • SpringBoot实现文件下载功能的方式分享
    1. 将文件以流的形式一次性读取到内存,通过响应输出流输出到前端 @RequestMapping("/download") public void download(String ...
    99+
    2023-03-23
    SpringBoot实现文件下载 SpringBoot文件下载 SpringBoot下载
  • Android实现多线程下载文件的方法
    本文实例讲述了Android实现多线程下载文件的方法。分享给大家供大家参考。具体如下: 多线程下载大概思路就是通过Range 属性实现文件分段,然后用RandomAccessF...
    99+
    2022-06-06
    多线程下载 方法 多线程 线程 Android
  • Android实现上传文件功能的方法
    本文所述为一个Android上传文件的源代码,每一步实现过程都备有详尽的注释,思路比较清楚,学习了本例所述上传文件代码之后,你可以应对其它格式文件的上传。实例中主要实现上传文件...
    99+
    2022-06-06
    方法 上传文件 Android
  • Android实现文件下载
    前言 总体思路:下载文件到应用缓存路径,在相册创建文件夹,Copy过去,通知相册刷新。 下载文件到APP缓存路径,这样可避免Android高版本读取本地权限问题, 准备 impl...
    99+
    2024-04-02
  • ztree+ajax实现文件树下载功能
    基于java实现文件树下载,供大家参考,具体内容如下 0.项目准备工作 1.前端用到的插件库: ztree官网 2.后端maven依赖: <dependencies>...
    99+
    2024-04-02
  • java实现文件上传下载功能
    本文实例为大家分享了java实现文件上传下载的具体代码,供大家参考,具体内容如下 1.上传单个文件 Controller控制层 import java.io.File; imp...
    99+
    2024-04-02
  • SpringMVC实现文件上传下载功能
    目录导入需要的依赖包一、单个文件上传二、多个文件上传三、上传文件列表显示四、文件下载今天遇到文件上传的问题,使用Ajax方式进行提交,服务器一直报错The current reque...
    99+
    2024-04-02
  • Servlet实现代理文件下载功能
    用户向代理服务器发送请求,代理服务器从后端服务器上获取文件,并返回给用户web.xml:<servlet> <servlet-name>BigFile</servlet-name> <servl...
    99+
    2023-05-30
    servlet 下载 实现代理
  • DownloadManager如何实现文件下载功能
    这篇文章主要介绍了DownloadManager如何实现文件下载功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言    关于文件下载,或许...
    99+
    2023-05-30
  • SpringBoot如何实现文件下载功能
    这篇文章主要介绍“SpringBoot如何实现文件下载功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot如何实现文件下载功能”文章能帮助大家解决问题。1. 将文件以流的形式一次性...
    99+
    2023-07-05
  • Vue实现文件上传和下载功能
    本文实例为大家分享了Vue实现文件上传和下载功能的具体代码,供大家参考,具体内容如下 1、a标签download属性 在H5中,为a标签新增了一个download属性,来直接文件的...
    99+
    2024-04-02
  • servlet实现文件上传与下载功能
    本文实例为大家分享了servlet实现文件上传与下载的具体代码,供大家参考,具体内容如下 内容 我们分两大模块来进行讲解,即上传的实现,与下载的实现 上传的实现 注意了我们在写上传表...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作