返回顶部
首页 > 资讯 > 精选 >Android开发中怎么实现一个下载zip压缩文件的功能
  • 892
分享到

Android开发中怎么实现一个下载zip压缩文件的功能

androidroi 2023-05-31 11:05:47 892人浏览 薄情痞子
摘要

今天就跟大家聊聊有关Android开发中怎么实现一个下载zip压缩文件的功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。下载:import java.io.BufferedInpu

今天就跟大家聊聊有关Android开发中怎么实现一个下载zip压缩文件的功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

下载:

import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalfORMedURLException; import java.net.URL; import java.net.URLConnection;  import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.os.AsyncTask; import android.util.Log;  public class DownLoaderTask extends AsyncTask<Void, Integer, Long> {  private final String TAG = "DownLoaderTask";  private URL mUrl;  private File mFile;  private ProgressDialog mDialog;  private int mProgress = 0;  private ProgressReportinGoutputStream mOutputStream;  private Context mContext;  public DownLoaderTask(String url,String out,Context context){   super();   if(context!=null){    mDialog = new ProgressDialog(context);    mContext = context;   }   else{    mDialog = null;   }      try {    mUrl = new URL(url);    String fileName = new File(mUrl.getFile()).getName();    mFile = new File(out, fileName);    Log.d(TAG, "out="+out+", name="+fileName+",mUrl.getFile()="+mUrl.getFile());   } catch (MalformedURLException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }     }    @Override  protected void onPreExecute() {   // TODO Auto-generated method stub   //super.onPreExecute();   if(mDialog!=null){    mDialog.setTitle("Downloading...");    mDialog.setMessage(mFile.getName());    mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);    mDialog.setOnCancelListener(new OnCancelListener() {          @Override     public void onCancel(DialogInterface dialog) {      // TODO Auto-generated method stub      cancel(true);     }    });    mDialog.show();   }  }   @Override  protected Long doInBackground(Void... params) {   // TODO Auto-generated method stub   return download();  }   @Override  protected void onProgressUpdate(Integer... values) {   // TODO Auto-generated method stub   //super.onProgressUpdate(values);   if(mDialog==null)    return;   if(values.length>1){    int contentLength = values[1];    if(contentLength==-1){     mDialog.setIndeterminate(true);    }    else{     mDialog.setMax(contentLength);    }   }   else{    mDialog.setProgress(values[0].intValue());   }  }   @Override  protected void onPostExecute(Long result) {   // TODO Auto-generated method stub   //super.onPostExecute(result);   if(mDialog!=null&&mDialog.isshowing()){    mDialog.dismiss();   }   if(isCancelled())    return;   ((MainActivity)mContext).showUnzipDialog();  }   private long download(){   URLConnection connection = null;   int bytesCopied = 0;   try {    connection = mUrl.openConnection();    int length = connection.getContentLength();    if(mFile.exists()&&length == mFile.length()){     Log.d(TAG, "file "+mFile.getName()+" already exits!!");     return 0l;    }    mOutputStream = new ProgressReportingOutputStream(mFile);    publishProgress(0,length);    bytesCopied =copy(connection.getInputStream(),mOutputStream);    if(bytesCopied!=length&&length!=-1){     Log.e(TAG, "Download incomplete bytesCopied="+bytesCopied+", length"+length);    }    mOutputStream.close();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }   return bytesCopied;  }  private int copy(InputStream input, OutputStream output){   byte[] buffer = new byte[1024*8];   BufferedInputStream in = new BufferedInputStream(input, 1024*8);   BufferedOutputStream out = new BufferedOutputStream(output, 1024*8);   int count =0,n=0;   try {    while((n=in.read(buffer, 0, 1024*8))!=-1){     out.write(buffer, 0, n);     count+=n;    }    out.flush();   } catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }finally{    try {     out.close();    } catch (IOException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }    try {     in.close();    } catch (IOException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }   }   return count;  }  private final class ProgressReportingOutputStream extends FileOutputStream{    public ProgressReportingOutputStream(File file)     throws FileNotFoundException {    super(file);    // TODO Auto-generated constructor stub   }    @Override   public void write(byte[] buffer, int byteOffset, int byteCount)     throws IOException {    // TODO Auto-generated method stub    super.write(buffer, byteOffset, byteCount);    mProgress += byteCount;    publishProgress(mProgress);   }     } } 

--结束END--

本文标题: Android开发中怎么实现一个下载zip压缩文件的功能

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

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

猜你喜欢
  • Android开发中怎么实现一个下载zip压缩文件的功能
    今天就跟大家聊聊有关Android开发中怎么实现一个下载zip压缩文件的功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。下载:import java.io.BufferedInpu...
    99+
    2023-05-31
    android roi
  • JavaWeb项目中怎么实现一个文件压缩下载功能
    本篇文章给大家分享的是有关JavaWeb项目中怎么实现一个文件压缩下载功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现思路有两种:一是将所有文件先打包压缩为一个文件,然后...
    99+
    2023-05-31
    javaweb ava 目中
  • Android中实现下载和解压zip文件功能代码分享
    本文提供了2段Android代码,实现了从Android客户端下载ZIP文件并且实现ZIP文件的解压功能,非常实用,有需要的Android开发者可以尝试一下。 下载: Down...
    99+
    2022-06-06
    zip Android
  • Android实现下载zip压缩文件并解压的方法(附源码)
    前言 其实在网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,所以这篇文章在此记录一下下载zip文件并直接解压的方法,直接上代码,文末有源码下载。 下载: ...
    99+
    2022-06-06
    方法 zip 解压 源码 Android
  • Android开发中怎么实现一个图片下载功能
    本篇文章给大家分享的是有关Android开发中怎么实现一个图片下载功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.普通的下载方式布局文件:<&#63;xml...
    99+
    2023-05-31
    android roi
  • 怎么在Android中利用DownloadManager实现一个文件下载功能
    本篇文章为大家展示了怎么在Android中利用DownloadManager实现一个文件下载功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android中DownloadManager实现文件下...
    99+
    2023-05-31
    android downloadmanager age
  • Android中怎么实现文件下载功能
    今天就跟大家聊聊有关Android中怎么实现文件下载功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。普通单线程下载文件:直接使用URLConnection.openStream()...
    99+
    2023-05-31
    android
  • java 批量下载将多个文件(minio中存储)压缩成一个zip包
    我的需求是将minio中存储的文件按照查询条件查询出来统一压成一个zip包然后下载下来。 思路:针对这个需求,其实可以有多个思路,不过也大同小异,一般都是后端返回流文件前端再处理下载,也有少数是压缩成zip包之后直接给下载链接返回到前端,前...
    99+
    2023-10-28
    java vue.js javascript spring boot
  • Android开发中怎么实现一个缩略图分享功能
    这篇文章将为大家详细讲解有关Android开发中怎么实现一个缩略图分享功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下 public void wxHyShare(String ...
    99+
    2023-05-31
    android roi
  • 如何在JavaWeb项目中实现文件压缩下载功能
    本篇文章为大家展示了如何在JavaWeb项目中实现文件压缩下载功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体代码如下所示://文件名称    Stri...
    99+
    2023-05-31
    javaweb ava 目中
  • android开发中项目实现一个图片压缩功能并能指定大小
    android开发中项目实现一个图片压缩功能并能指定大小?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先是一个根据分辨率压缩的类,首先对图片进行一次压缩 ...
    99+
    2023-05-31
    android roi
  • Android开发中怎么实现一个全文收起功能
    这期内容当中小编将会给大家带来有关Android开发中怎么实现一个全文收起功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先写一个布局,这个布局是每个子项的布局 item_text_list.xml&...
    99+
    2023-05-31
    android roi
  • Android中怎么实现图片压缩功能
    Android中怎么实现图片压缩功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、图片质量压缩    public s...
    99+
    2023-05-31
    android
  • 利用Servlet怎么实现一个文件下载功能
    本篇文章给大家分享的是有关利用Servlet怎么实现一个文件下载功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Web容器为Servlet生成并且传递的HttpServlet...
    99+
    2023-05-31
    servlet 一个文件
  • Android开发中怎么实现一个分享功能
    Android开发中怎么实现一个分享功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现代码如下所示;Intent email = new Intent(android....
    99+
    2023-05-31
    android roi
  • 如何利用MySQL和C++开发一个简单的文件压缩功能
    要利用MySQL和C++开发一个简单的文件压缩功能,可以按照以下步骤进行:1. 在MySQL中创建一个表格,用于存储文件的信息。表格...
    99+
    2023-10-20
    MySQL
  • HTML5中怎么实现一个图片压缩上传功能
    这篇文章给大家介绍HTML5中怎么实现一个图片压缩上传功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、创建一个图片和一个canvasXML/HTML Code复制内容到剪贴板va...
    99+
    2024-04-02
  • 怎么在shell中实现一个ftp上传下载文件功能
    怎么在shell中实现一个ftp上传下载文件功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1,建立主机A到其他三台主机之间的信任关系,以便于远程拷贝文件#生成主机A的本...
    99+
    2023-06-09
  • 怎么在HTML5中Blob利用实现一个文件下载功能
    怎么在HTML5中Blob利用实现一个文件下载功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。$("#exportAll").on(&qu...
    99+
    2023-06-09
  • 怎么在vue中使用django实现一个文件下载功能
    这篇文章将为大家详细讲解有关怎么在vue中使用django实现一个文件下载功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、概述在项目中,点击下载按钮,就可以下载文件。传统的下载链接一般...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作