`
yangxiutian
  • 浏览: 59761 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

用Deflater与Inflater实现字节的压缩与解压

阅读更多

百度了一下,deflate就是zip压缩“ZIP,是一个计算机文件的压缩的算法,原名Deflate(真空)

 

package com.yangxiutian;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;

public class ZLibUtils {
	/**
	 * 用zip算法解压压缩字节
	 * @param zipByte 输入的压缩字节
	 * @return	解压好的解压字节
	 * @throws IOException
	 */
	public static byte[] decompress(byte[] zipByte) throws IOException {
		ByteArrayOutputStream aos=new ByteArrayOutputStream(); 
		Inflater inflater=new Inflater();
		inflater.setInput(zipByte); 
		byte[] buff=new byte[1024];
		int byteNum=0;
		while(!inflater.finished()){
			try {
				byteNum=inflater.inflate(buff);
				aos.write(buff,0,byteNum);
			} catch (DataFormatException e) {
				e.printStackTrace();
			}
		}
		return aos.toByteArray();
	}
	
	/**
	 * 用zip算法压缩字节
	 * @param zipByte 输入的待压缩字节
	 * @return	压缩就绪的字节
	 * @throws IOException
	 */
	public static byte[] compress(byte[] bytes) throws IOException {
		ByteArrayOutputStream aos=new ByteArrayOutputStream(); 
		Deflater inflater=new Deflater();
		inflater.setInput(bytes);
		inflater.finish();
		byte[] buff=new byte[1024];
		int byteNum=0;
		while(!inflater.finished()){
			byteNum=inflater.deflate(buff);
			aos.write(buff, 0, byteNum);
		}
		return aos.toByteArray();
	}

}
  • ZLibUtils.zip (626 Bytes)
  • 描述: 上面源码的文件,iteye要求要压缩 请您解压一下
  • 下载次数: 5
0
7
分享到:
评论

相关推荐

    字符串的压缩和解压

    字符串的压缩和解压

    使用inflater实现窗体布局

    NULL 博文链接:https://andli.iteye.com/blog/1181080

    inflater三种用法

    转载的三种inflater的用法,主要是dialog、fragment会用到。

    压缩和解压缩字符串

    两种方法 对字符串进行压缩和解压缩,inflater和deflater。

    tinyorm-plugin-boolean-inflater-deflater

    tinyorm-plugin-boolean-inflater-deflater 待定 概要 待定 描述 待定 作者 moznion ( ) 执照 The MIT License (MIT) Copyright :copyright: 2015 moznion, http://moznion.net/ <moznion> Permission is hereby ...

    易语言-zip_deflate(压缩)与zip_inflate(解压)

    JS找齐了,源码通过精易模块调用JS代码,内附JS原文件地址,需要的回复下载。

    Android inflater 用法及不同点

    在 实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。这篇文章主要介绍了Android inflater 用法,需要的朋友可以参考下

    Android中LayoutInflater.inflater()的正确打开方式

    主要给大家介绍了关于Android中LayoutInflater.inflater()的正确打开方式,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

    LayouInflater

    android LayouInflater 页面跳转 button点击

    zipme包---j2me的zip

    Inflater Inflater is used to decompress data that has been compressed according to the "deflate" standard described in rfc1950. InflaterInputStream This filter stream is used to decompress data ...

    Android代码-BubblePopupWindow

    Android 实现各个方向的气泡弹窗,可控制气泡尖角偏移量。 截图 依赖 dependencies { compile 'com.yuyh.bubble:library:1.0.0' } 使用 默认弹窗BubblePopupWindow leftTopWindow = new BubblePopupWindow...

    Android代码-Android-FloatWindow

    1.首先在AndroidManifest.xml中添加使用权限: uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" 2.二行代码实现自定义弹窗view View contentView = inflater.inflate(R.layout.layout_...

    安卓单任务多线程任意断点下载【源码】.rar

    安卓Android单任务多线程任意断点下载【源码】,包括了一个可复用的文件下载服务类用于获取实时更新每条线程已经下载的文件长度,可实现多任务下载  1.创建XML文件,将要生成的View配置好  2.获取系统服务...

    Java堆外内存泄露场景总结.pdf

    Java堆外内存泄露场景总结,包含几个常用的可能,如:JNI,NIO,AWT/Swing,Inflater&Deflater;

    Android 中级应用 一 LayoutInflater 的使用

    LayoutInflater Layout 与 Inflater[扩充]两个单词的合并,可以理解为:当前Activity 布局的扩充.

    Android实现弹出登陆框的方案

    2.然后我就使用PopupWindow来实现,界面是达到了我的要求,控件的获得通过Inflater就可以获得了相对较简单,但是有一个缺点就是,当点击输入的时候,对话框不会根据软键盘的位置而改变位置,网上搜了搜,还不能直接...

    Android编程实现Toast自定义布局简单示例

    本文实例讲述了Android编程实现Toast自定义布局的方法。分享给大家供大家参考,具体如下: 不知道各位客官是不是觉得系统的toast的信息很难看呢,默认的但黑色背景,毫无色彩。 那么接下来我就教大家用最简单的方式...

Global site tag (gtag.js) - Google Analytics