`
microjuz
  • 浏览: 32628 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JDK API for compress byte array

    博客分类:
  • Java
阅读更多
API: int java.util.zip.Deflater.deflateBytes(byte[] b, int off, int len)

Usage Scenarios:
1. decrease communication load
2. decrease cache load for receiver when data amount too large
3. comrepssion level depend on data source(text or images..)

Code:
	/**
	 * threshold value for compress
	 */
	public static final int THRESHOLD = 1200;
	
	/**
	 * Answer a byte array compressed in the DEFLATER format from bytes.
	 * 
	 * @param bytes
	 *            a byte array
	 * @return byte[] compressed bytes
	 * @throws IOException
	 */
	public static byte[] compress(byte[] bytes)
	{
		// Create the compressor with highest level of compression
		Deflater compressor = new Deflater();
		compressor.setLevel(Deflater.BEST_COMPRESSION);

		// Give the compressor the data to compress
		compressor.setInput(bytes);
		compressor.finish();

		// Create an expandable byte array to hold the compressed data.
		// You cannot use an array that's the same size as the orginal because
		// there is no guarantee that the compressed data will be smaller than
		// the uncompressed data.
		ByteArrayOutputStream bos = new ByteArrayOutputStream(bytes.length);

		// Compress the data
		byte[] buf = new byte[1024];
		while (!compressor.finished())
		{
			int count = compressor.deflate(buf);
			bos.write(buf, 0, count);
		}
		try
		{
			bos.close();
		}
		catch (IOException e)
		{
		}

		// Get the compressed data
		byte[] compressedData = bos.toByteArray();
		return compressedData;
	}

	/**
	 * Answer a byte array that has been decompressed from the DEFLATER format.
	 * 
	 * @param bytes
	 *            a byte array
	 * @return byte[] compressed bytes
	 * @throws IOException
	 */
	public static byte[] uncompress(byte[] bytes)
	{
		// Create the decompressor and give it the data to compress
		Inflater decompressor = new Inflater();
		decompressor.setInput(bytes);

		// Create an expandable byte array to hold the decompressed data
		ByteArrayOutputStream bos = new ByteArrayOutputStream(bytes.length);

		// Decompress the data
		byte[] buf = new byte[1024];
		while (!decompressor.finished())
		{
			try
			{
				int count = decompressor.inflate(buf);
				bos.write(buf, 0, count);
			}
			catch (DataFormatException e)
			{
			}
		}
		try
		{
			bos.close();
		}
		catch (IOException e)
		{
		}

		// Get the decompressed data
		byte[] decompressedData = bos.toByteArray();
		return decompressedData;
	}
分享到:
评论

相关推荐

    JDK API 1.6 中文版

    JDK API 1.6 中文版........

    JDK API 1.8 中文

    JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 中文 JDK API 1.8 ...

    jdk api for linux

    jdk Linux下帮助文件 很好的 .bin

    Java jdk api 1.8_google.CHM JDK API 1.8谷歌翻译中文版在线参考手册

    《Java JDK API 1.8谷歌翻译中文版在线参考手册》是Java开发者不可或缺的重要参考资料,它详尽地列出了Java开发工具包(JDK)1.8版本中的各种类库、接口、方法和异常,为程序员提供了清晰的API文档。这份手册通过...

    最新jdk api1.8英文版和jdk api1.6中文版

    Java Development Kit (JDK) API 是 Java 程序员的重要参考资料,它包含了Java平台标准版(Java SE)的核心类库,提供了大量的类和接口,这些类和接口构成了Java编程的基础。API文档详细阐述了每个类、接口及其方法...

    jdk api 1.8_中文文档

    《JDK API 1.8_中文文档》是Java开发者不可或缺的重要参考资料,它详细记录了Java Development Kit(JDK)1.8版本中的各种类库、接口、方法和异常等核心组件,为开发者提供了全面而深入的API使用指南。这份文档以...

    JDK API 1.6中文版.zip

    **JDK API 1.6中文版** JDK(Java Development Kit)是Oracle公司发布的用于开发和运行Java应用程序的重要工具集。JDK API 1.6中文版是针对Java编程语言的一个关键参考资料,它提供了Java标准类库的详细文档,方便...

    JDK API 1.6.0 中文版.rar

    《JDK API 1.6.0 中文版》是一个为Java开发者提供的极其重要的参考资料,它详尽地列出了Java Development Kit(JDK)1.6.0版本的所有公开的类、接口、方法和常量。这个压缩包包含了两个文件:`JDK API 1.6.0 中文版....

    jdk api 1.8中文版

    JDK1.8 API 中文 谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 谷歌百度翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷歌翻译,非人工翻译。准确性不能保证,请与英文版配合使用

    JDK1.7中文版API

    建议官方只收1积分,汉化绝大多数方法与函数只有少数1.7少用方法没有汉化,并含使用案例,jdk api 1.7是一款JAVA1.7中文版的API帮助文档,众所周知JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的...

    jdk api 1.8_google.CHM

    Java1.8中文API(google翻译版) 文件名:jdk api 1.8_google.CHM 文件大小:40.8M

    jdk api 1.8_google

    JDK API 1.8.CHM是一款jdk1.8中文版的API帮助文档,可以帮助使用java,jdk的用户们通过api及时查找到对应的类,接口,框架等详细信息的帮助手册。 JDK API 1.8是一个CHM格式的帮助文档,可以查到jdk所有包的的类、接口、...

    jdkapi1.8-google(jdk api 1.8-googleCHM).zip

    本资料"jdkapi1.8-google(jdk api 1.8-googleCHM).zip"包含了Java Development Kit(JDK)1.8版本的API文档,特别是谷歌定制版,旨在为开发者提供更详尽的指南和示例。这份压缩包中的文件"jdkapi1.8_google(jdk api ...

    JDK_API_1.8(中文版)JDK_API_1_8_zh_CN.zip

    《JDK_API_1.8(中文版)详解》 JDK_API_1.8是Java开发工具包的一个重要版本,对于Java开发者来说,它是理解并掌握Java编程的基础。这个中文版的API文档,旨在帮助中国开发者更方便地学习和查询Java 1.8的相关接口与...

    JDK api1.8 中文版

    《JDK API 1.8 中文版》是Java开发人员的重要参考资料,它提供了Java Development Kit(JDK)1.8版本的核心API的中文文档。这个免费的中文版文档,虽然不能保证每个术语和概念都翻译得尽善尽美,但已经为那些英语...

    JDK_API_1.6中文版

    **JDK_API_1.6中文版** JDK (Java Development Kit) 是Oracle公司发布的用于开发和运行Java应用程序的工具集。JDK 1.6是Java平台的一个重要版本,包含了Java SE(标准版)的核心组件。这个版本的API中文版为开发者...

    JDK API 1.8.0_jdkapi1.8.0_jdk提取_jdk8u241_jdk1.8.0241下载_jdk8u241下

    **JDK API 1.8.0:Java开发工具包的核心接口** JDK(Java Development Kit)是Oracle公司提供的用于开发Java应用程序的软件包。在JDK 1.8.0版本中,它包含了编译、调试、运行Java程序所需的各种工具和库。此版本的...

    JDK8 中文帮助文档(jdk api 1.8 google.CHM)

    这个文档集合,尤其是"jdk api 1.8_google.CHM",是JDK8的中文API(应用程序接口)帮助文档,它是开发者日常开发中的重要参考资料。 **1. Lambda表达式** JDK8引入了Lambda表达式,这是一种简洁的函数式编程特性,...

    Eclipse显示中文JAVA JDK API的方法

    "Eclipse中文JAVA JDK API配置方法" Eclipse是一款功能强大且广泛使用的集成开发环境(IDE),它提供了许多实用的功能和插件来帮助开发者提高开发效率。然而,在使用Eclipse开发Java应用程序时,开发者常常会遇到一...

    jdk api 1.8中文帮助文档

    内容概要:jdk1.8 api 中文帮助文档 适合人群:供广大java爱好者使用 能学到什么:方便查找相应内容,提高学习效率。 阅读建议:建议配合相对应的编程工具如idea,或eclipse一起使用更佳。

Global site tag (gtag.js) - Google Analytics