170814、Java使用gzip压缩文件、还原文件
- package com.rick.utils;
- import java.io.*;
- import java.util.zip.GZIPInputStream;
- import java.util.zip.GZIPOutputStream;
- /********************************************************
- *@Desc: gizp工具类
- *@Author: ZRP
- *@Date: 2017/11/9 9:31
- ********************************************************/
- public class GzipUtil {
- /**
- * @Desc : gzip压缩
- * @Author : ZRP
- * @Params: [data]
- * @Return: byte[]
- * @Date : 2017/11/9 9:43
- */
- public static byte[] gzip(byte[] data) throws Exception {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- GZIPOutputStream gzip = new GZIPOutputStream(bos);
- gzip.write(data);
- gzip.finish();
- gzip.close();
- byte[] ret = bos.toByteArray();
- bos.close();
- return ret;
- }
- /**
- * @Desc : gzip解压缩
- * @Author : ZRP
- * @Params: [data]
- * @Return: byte[]
- * @Date : 2017/11/9 9:47
- */
- public static byte[] ungzip(byte[] data) throws Exception{
- ByteArrayInputStream bis = new ByteArrayInputStream(data);
- GZIPInputStream gzip = new GZIPInputStream(bis);
- byte[] buf = new byte[1024];
- int num = -1;
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- while ((num = gzip.read(buf, 0, buf.length)) != -1){
- bos.write(buf, 0, num);
- }
- gzip.close();
- bis.close();
- byte[] ret = bos.toByteArray();
- bos.flush();
- bos.close();
- return ret;
- }
- /**
- * 测试压缩和还原
- * @param args
- * @throws Exception
- */
- public static void main(String[] args) throws Exception{
- //读取文件
- String readPath = System.getProperty("user.dir") + File.separatorChar + "sources" + File.separatorChar + "001.jpg";
- File file = new File(readPath);
- FileInputStream in = new FileInputStream(file);
- byte[] data = new byte[in.available()];
- in.read(data);
- in.close();
- System.out.println("文件原始大小:" + data.length);
- //测试压缩
- byte[] ret1 = GzipUtil.gzip(data);
- System.out.println("压缩之后大小:" + ret1.length);
- byte[] ret2 = GzipUtil.ungzip(ret1);
- System.out.println("还原之后大小:" + ret2.length);
- //写出文件
- String writePath = System.getProperty("user.dir") + File.separatorChar + "receive" + File.separatorChar + "001.jpg";
- FileOutputStream fos = new FileOutputStream(writePath);
- fos.write(ret2);
- fos.close();
- }
- }
170814、Java使用gzip压缩文件、还原文件的更多相关文章
- GZip压缩的js文件IE6下面不能包含<script>标签
IE6下面,GZip压缩的js文件,如果js中包含<script>标签,一遇到这样的标签,后面的内容居然都截断了,狂晕! 花了我一个晚上来找原因.. 需要将字符串'<script&g ...
- IIS7.5打开GZip压缩,同时启用GZip压缩JS/CSS文件的设置方法[bubuko.com]
IIS7.5或者IIS7.0开启GZip压缩方法:打开IIS,在右侧点击某个网站,在功能视图中的“IIS”区域,双击进入“压缩”,如图下图: 分别勾选“启用动态内容压缩”和“启用静态内容压缩”.这样最 ...
- SpringBoot之GZip压缩,HTTP/2,文件上传,缓存配置
1 设置应用端口以及context # HTTP Server port server.port=8080 # Make the application accessible on the given ...
- Linux命令(十八) 压缩或解压缩文件和目录 gzip gunzip
目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 和 zip 命令类似,gzip 用于文件的压缩,gzip压缩后的文件扩展名为 ".gz",gzip默认压缩后 ...
- 在ASP.NET中实现压缩多个文件为.zip文件,实现批量下载功能 (转载并优化处理篇)
转自:http://blog.csdn.net/yanlele424/article/details/6895986 这段时间一直在做一个网站,其中遇到了一个问题,就是在服务器端压缩多个服务器端的文件 ...
- nginx缓存配置及开启gzip压缩
阅读目录 一:nginx缓存配置 二:nginx开启gzip 回到顶部 一:nginx缓存配置 在前一篇文章,我们理解过http缓存相关的知识点, 请看这篇文章. 今天我们来学习下使用nginx服务来 ...
- java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 使用过程 和servlet差不多
java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 也仿照着 netty处理了NIO的空轮询BUG 本项目并不复杂 代码不多 ...
- Java编程的逻辑 (64) - 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- 使用Java API进行tar.gz文件及文件夹压缩解压缩
在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...
随机推荐
- 探究Visual Studio生成的.vs文件夹内部结构和作用
https://shiyousan.com/post/636441130259624698 在某个契机的引发下,对VS解决方案中自动生成的.vs文件夹产生了兴趣,以前总对这个文件夹不怎么上心,最近正好 ...
- RedHat6.5-Linux安装telnet服务
1 下载以下三个包 telnet-0.17-47.el6.x86_64.rpm(telnet客户端) telnet-server-0.17-47.el6.x86_64.rpm(telnet服务端) x ...
- MongoDB的数据模型
文档的数据模型代表了数据的组织结构,一个好的数据模型能更好的支持应用程序.在MongoDB中,文档有两种数据模型,内嵌(embed)和引用(references). 内嵌 MongoDB的文档是无模式 ...
- XSS payload 大全
收集的一些XSS payload,主要分为五大类,便于查阅. #第一类:Javascript URL <a href="javascript:alert('test')"&g ...
- PHP 使用 MongoDB
PHP 想要往 MongoDB 里增删查改数据,需要先安装 mongodb 或 mongo 扩展模块,一般两个都装上: cd /usr/local/src/ wget https://pecl.php ...
- 使用 Selenium
Selenium 简介 Selenium 基本用法 Selenium 查找节点 Selenium 节点交互 Selenium 动作链 Selenium 执行 JavaScript Selenium 获 ...
- 使用 requests 配置代理服务
(1) 如果我们一直用同一个IP去请求同一个网站上的网页,久了之后可能会被该网站服务器屏蔽,因此我们可以使用代理IP来发起请求,代理实际上指的就是代理服务器(2) 当我们使用代理IP发起请求时,服务器 ...
- C语言实现字符串IP与整数型IP的相互转换
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h&g ...
- php git pull
http://jondavidjohn.com/git-pull-from-a-php-script-not-so-simple/
- [转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃 虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束.并且发送 ...