全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android实现压缩字符串的方法示例

前言

Android端可以对字符串进行压缩,我们在进行大量简单文本传输时,可以先压缩字符串再发送。接收端接收后再解压。也可以将字符串压缩后存入数据库中,下面话不多说了,来一起看看详细的介绍吧。

使用到的类库

GZIPOutputStream

代码示例

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class StrZipUtil {
 /**
  * @param input 需要压缩的字符串
  * @return 压缩后的字符串
  * @throws IOException IO
  */
 public static String compress(String input) throws IOException {
  if (input == null || input.length() == 0) {
   return input;
  }
  ByteArrayOutputStream out = new ByteArrayOutputStream();
  GZIPOutputStream gzipOs = new GZIPOutputStream(out);
  gzipOs.write(input.getBytes());
  gzipOs.close();
  return out.toString("ISO-8859-1");
 }
 /**
  * @param zippedStr 压缩后的字符串
  * @return 解压缩后的
  * @throws IOException IO
  */
 public static String uncompress(String zippedStr) throws IOException {
  if (zippedStr == null || zippedStr.length() == 0) {
   return zippedStr;
  }
  ByteArrayOutputStream out = new ByteArrayOutputStream();
  ByteArrayInputStream in = new ByteArrayInputStream(zippedStr
    .getBytes("ISO-8859-1"));
  GZIPInputStream gzipIs = new GZIPInputStream(in);
  byte[] buffer = new byte[256];
  int n;
  while ((n = gzipIs.read(buffer)) >= 0) {
   out.write(buffer, 0, n);
  }
  // toString()使用平台默认编码,也可以显式的指定如toString("GBK")
  return out.toString();
 }
}

红米手机测试输出

08-09 13:16:53.388 32248-32267/com.rustfisher.ndkproj D/rustApp: 开始存入数据库 ori1 len=304304
08-09 13:16:53.418 32248-32267/com.rustfisher.ndkproj D/rustApp: 已存入数据库 ori1 len=304304 , 耗时约37 ms
08-09 13:16:53.418 32248-32267/com.rustfisher.ndkproj D/rustApp: 开始压缩 ori1 len=304304
08-09 13:16:53.438 32248-32267/com.rustfisher.ndkproj D/rustApp: 压缩完毕 zip1 len=1112 , 耗时约19 ms
08-09 13:16:53.438 32248-32267/com.rustfisher.ndkproj D/rustApp: 存压缩后的数据进数据库 zip1.length=1112
08-09 13:16:53.448 32248-32267/com.rustfisher.ndkproj D/rustApp: 压缩后的数据已进数据库 zip1.length=1112 , 耗时约8 ms
08-09 13:16:53.448 32248-32267/com.rustfisher.ndkproj D/rustApp: 解压开始
08-09 13:16:53.488 32248-32267/com.rustfisher.ndkproj D/rustApp: 解压完毕 耗时约36 ms

存储时间受存储字符串的长度影响。字符串长度与存储耗时正相关。

荣耀手机测试

08-09 10:38:42.759 23075-23109/com.rustfisher D/rustApp: 开始压缩 ori1 len=304304
08-09 10:38:42.764 23075-23109/com.rustfisher D/rustApp: 压缩完毕 zip1 len=1112
08-09 10:38:42.764 23075-23109/com.rustfisher D/rustApp: 解压开始
08-09 10:38:42.789 23075-23109/com.rustfisher D/rustApp: 解压完毕

此例中,荣耀压缩耗时约5ms,解压耗时约25ms。

可以看出,压缩后与原长度之比 1112/304304, 约0.365%

压缩和解压缩耗时视手机情况而定。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# android  # 字符串压缩  # 字符串压缩算法  # java  # java字符串压缩解压示例  # java实现压缩字符串和java字符串过滤  # 说了  # 不多  # 可以看出  # 这篇文章  # 谢谢大家  # 解压缩  # 而定  # 以对  # 数据库中  # 再发  # 之比  # 类库  # 此例  # 有疑问  # throws  # GZIPInputStream  # static  # IO  # param  # input 


相关文章: 如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何快速搭建高效香港服务器网站?  再谈Python中的字符串与字符编码(推荐)  大学网站设计制作软件有哪些,如何将网站制作成自己app?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  Swift中swift中的switch 语句  如何在阿里云虚拟主机上快速搭建个人网站?  如何选择域名并搭建高效网站?  如何在搬瓦工VPS快速搭建网站?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何高效完成自助建站业务培训?  如何通过.red域名打造高辨识度品牌网站?  名字制作网站免费,所有小说网站的名字?  建站之星如何实现网站加密操作?  建站之星如何保障用户数据免受黑客入侵?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  孙琪峥织梦建站教程如何优化数据库安全?  建站之星如何取消后台验证码生成?  建站之星后台管理如何实现高效配置?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  电商网站制作公司有哪些,1688网是什么意思?  建站三合一如何选?哪家性价比更高?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  常州企业建站如何选择最佳模板?  如何在阿里云服务器自主搭建网站?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何获取上海专业网站定制建站电话?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何快速搭建自助建站会员专属系统?  香港服务器租用每月最低只需15元?  如何通过IIS搭建网站并配置访问权限?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  如何零基础开发自助建站系统?完整教程解析  ,怎么在广州志愿者网站注册?  公司网站制作价格怎么算,公司办个官网需要多少钱?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何快速搭建支持数据库操作的智能建站平台?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何在局域网内绑定自建网站域名?  如何实现建站之星域名转发设置?  高防服务器租用指南:配置选择与快速部署攻略  在线制作视频的网站有哪些,电脑如何制作视频短片?  建站主机解析:虚拟主机配置与服务器选择指南  模具网站制作流程,如何找模具客户?  设计网站制作公司有哪些,制作网页教程?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。