java压缩文件相关知识
-
Java压缩文件生成工具类原文链接在工作过程中,需要将一个文件夹生成压缩文件,然后提供给用户下载。所以自己写了一个压缩文件的工具类。该工具类支持单个文件和文件夹压缩。放代码:import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream;/** * @project: Test * @author chenssy * @date 2013-7-28 * @Description: 文件压缩工具类 * 将指定文件/文件夹压缩成zip、rar压缩文件 */public class CompressedFileUtil { /** * 默认构造函数 */ public
-
压缩20M文件从30秒到1秒的优化过程文章来源公众号:IT牧场 有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去。之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件竟然需要30秒的时间。压缩文件的代码如下。 public static void zipFileNoBuffer() { File zipFile = new File(ZIP_FILE); try (ZipOutputStream zipOut = n
-
使用Java API进行tar.gz文件及文件夹压缩解压缩在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputStream去创建gzip(gz)压缩文件,但是java中没有一种官方的API可以去创建tar.gz文件。所以我们需要使用到第三方库Apache Commons Compress去创建.tar.gz文件。 在pom.xml中,我们可以通过如下的maven坐标引入commons-compress。 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId>
-
Java实现文件压缩与解压[zip格式,gzip格式]Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例。zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了。这些类不是Reader和Writer,而是InputStream和OutStreamput的子类。这是因为压缩算法是针对byte而不是字符的。相关类与接口:Checksum 接口:被类Adler32和CRC32实现的接口Adler32 :使用Alder32算法来计算Checksum数目CRC32 :使用CRC32算法来计算Checksum数目CheckedInputStream :InputStream派生类,可得到输入流的校验和
java压缩文件相关课程
-
GD库实现图片水印与缩略图 本课程将带领大家通过PHP中的GD库巧妙的实现图片水印与缩略图功能,大家可以轻松掌握案例的实现思路,同时课程中也讲解了如何将此过程封装成类,可以进一步加深对面向对象的理解。
讲师:BobWang 初级 18951人正在学习
java压缩文件相关教程
- 文件压缩与解压缩 压缩包也是我们平时工作中经常要接触到的文件格式,压缩文件后缀名通常有 .zip、.rar、.7z 等等。Python 中也有专门用来操作压缩包文件的第三方模块 zipfile。听这个名字就知道是用来操作压缩包文件的了,这个第三方模块也是我们本节课的重点,下面我们就一起来看一下。
- 文件压缩与解压 前面小节介绍了如何对文件和目录删除、移动操作,本小节介绍如何使用命令对文件和目录进行压缩与解压操作,常见的压缩包格式有 .bz2、.Z、.gz、.zip、.xz,压缩之后的文件或目录占用更少的空间。
- 2.1 使用 zip 压缩文件 使用 zip 命令可以将 alltxt.tar 包压缩为 .zip 压缩包,命令如下:lszip alltxt.zip alltxt.tarls执行结果如下:Tips:可以使用 zip -r zip包名 目录名 递归压缩目录以及目录中所有文件。
- 1.3 打开压缩文件 即使打开压缩的 js,并查找关键字等,也是非常快。虽然这个操作不常见,但是为了体现 Sublime 编辑器的优雅性能,我还是展示出来了。Tips 由于压缩文件过大,编辑器并不会给文件添加高亮,因为必要性不大,也为了性能。
- 2. 使用 zipfile 模块进行压缩与解压缩 现在 D:\code 目录已有 code.zip,内容如下图所示。接下来通过 zipfile 模块对压缩文件进行操作,zipfile 模块操作压缩文件常用方法见下表。方法名描述 namelist() 返回 ZIP 文件内所有成员名字列表 write() 添加文件到压缩包内 extract(member[, path[, pwd]]) 解压单个文件,参数 members 表示 zipfile 对象中某个文件名,path 为解压到的目的路径,默认是压缩包所在路径,pwd 为压缩包密码,默认无密码 extractall([path[, members[, pwd]]]) 解压所有文件,参数 path 为解压到的目的路径,默认是压缩包所在路径,members 默认值是压缩包文件中所有文件名称列表,也可以另外指定,pwd 为压缩包密码,默认无密码下面来具体看下每个方法的使用:namelist () 使用:import zipfile, oszipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'code.zip'))print(zipFile.namelist())#输出: ['code/', 'code/index.py', 'code/newimage/', 'code/writeppt.py', 'code/writeword.py']代码解释:namelist () 方法获取压缩包中所有文件的名字,并组成列表返回。首先通过 ZipFile 实例化 zip 文件对象,其中压缩文件这里通过 OS 模块的 join 方法进行拼接,返回一个绝对路径。通过 namelist () 方法打印输出:['code/', 'code/index.py', 'code/newimage/', 'code/writeppt.py', 'code/writeword.py']write () 使用:import zipfile, oszipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'code.zip'),'a')zipFile.write("test.txt")print(zipFile.namelist())#输出: ['code/', 'code/index.py', 'code/newimage/', 'code/writeppt.py', 'code/writeword.py','code/test.txt']代码解释:write () 方法为添加文件到压缩文件,在 D:\code 目录下,创建 test.txt 文件,通过 wirte () 方法添加到现有压缩文件 code.zip 中,执行完成后,通过 namelist () 方法重写打印压缩文件中所有成员名字列表,输出 ['code/', 'code/index.py', 'code/newimage/', 'code/writeppt.py', 'code/writeword.py','code/test.txt']。上述代码中需要注意:向压缩文件中写入内容时,注意修改 zipFile 实例化处的模式,默认为 “r”,表示只读,不可以写入,设置为 “w” 后可以写入,但会覆盖原有压缩文件中内容,如果想要追加,设置为 “a” 即可。extract () 使用:import zipfile, oszipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'code.zip'))for file in zipFile.namelist(): zipFile.extract(file)zipFile.close()代码解释:extract () 方法为单个压缩文件解压,代码中结合 namelist () 方法将 D:\code\code.zip 进行解压缩操作,解压后效果如下图所示。extractall () 使用:import zipfile, oszipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'code.zip'))zipFile.extractall()zipFile.close()代码解释:extractall () 方法为解压 zip 文档中的所有文件到指定目录,默认为压缩包所在路径,即当前目录。代码执行完成后,效果同 extract () 结合 namelist () 方法进行解压操作一样。
- 3. Nginx中的压缩配置 Nginx 的压缩配置主要是用在与浏览交互中,对网页、css、js等静态资源进行压缩,通过消耗 cpu 的计算资源来节约大量的带宽,提高传输效率,给用户良好的体验。Nginx 中的 ngx_http_gzip_module 就是专门处理这里压缩功能的模块。其中部分重要指如下:gzip: 是否打开 gzip 压缩功能;Syntax: gzip on | off;Default: gzip off;Context: http, server, location, if in locationgzip_buffers: 设置压缩所需要的缓冲区大小;Syntax: gzip_buffers number size;Default: gzip_buffers 32 4k|16 8k;Context: http, server, locationgzip_comp_level: 设置压缩级别,从1-9;越大压缩率越高,同时消耗cpu资源也越多;Syntax: gzip_comp_level level;Default: gzip_comp_level 1;Context: http, server, locationgzip_types:需要压缩的文件格式 text/html默认会压缩,不用添加;Syntax: gzip_types mime-type ...;Default: gzip_types text/html;Context: http, server, locationgzip_min_length: 压缩文件最小大小;Syntax: gzip_min_length length;Default: gzip_min_length 20;Context: http, server, location一个常见的压缩配置如下: # 开启gzip压缩 gzip on; # http的协议版本 gzip_http_version 1.0; # IE版本1-6不支持gzip压缩,关闭 gzip_disable 'MSIE[1-6].'; #需要压缩的文件格式 gzip_types text/css text/javascript application/javascript image/jpeg image/png image/gif; #设置为4个8K内存作为压缩结果流缓存 gzip_buffers 4 8k; #压缩文件最小大小 gzip_min_length 1k; #压缩级别1-9 gzip_comp_level 9; #给响应头加个vary,告知客户端能否缓存 gzip_vary on; #反向代理时使用 gzip_proxied off;注意: gzip 的开启需适应特定的场景,比如大文件和图片的传输就不是和开启 gzip 功能,压缩效果不明显的同时还白白耗费系统的资源,所以使用时需要慎重考虑。
java压缩文件相关搜索
-
j2ee
j2ee是什么
jar格式
java
java api
java applet
java c
java jdk
java list
java map
java script
java se
java socket
java swing
java switch
java web
java xml
java 程序设计
java 多线程
java 环境变量