导航:首页 > 文件处理 > javazip压缩率

javazip压缩率

发布时间:2023-08-19 09:03:01

‘壹’ java中的压缩原理是什么

什么是压缩文件? 简单的说,就是经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。 ■怎么压缩文件? 首先要安装压缩软件,现在比较流行的是WinRAR“一种高效快速的文件压缩软件(中文版)”。 其次是建立一个压缩包:选择你要制作成压缩包的文件或文件夹,当然你也可也多选,方法同资源管理器,也就是按住Ctrl或Shift再选择文件(文件夹)。 选取完毕之后,就可以单击工具栏上的“压缩”按钮,在这里你可以选择压缩格式:RAR和ZIP。 如果你想得到较大的压缩率,建议选择RAR格式。 各个选项选择好以后,单击确定按钮就开始制作压缩包了,非常方便。有时候大家会遇到这个问题,就是你在一个论坛里要上传一些文件压缩包,压缩包大小有3M,但是论坛限制会员上传大小只有2M,怎么办呢? 其实办法很简单,就是在你压缩这个文件时,分成几个带分卷压缩包,分卷包大小设置为2M即可,比如:原来文件名为123.rar(3M),压缩成分卷包后为123.part1.rar(2M)与123.part2.rar(1M)两个文件,这样你就可以上传了。 具体方法如下: 1、在要压缩的文件上点右键 2、添加到压缩文件.... 3、选常规 4、压缩方式选最好 5、批定压缩分卷大小(按字节计算),1M = 1024K,1K = 1024字节,填写数字即可 当你下载了带有分卷的压缩包后,如何解压文件呢? 具体方法如下: 1、把所有的压缩分卷全部下载完整 2、所有分卷必须在同一个文件夹内 3、然后双击解压第一个分卷,即可 注:分卷解压的文件必须是连续的,若分卷未下载完整,则解压时自然会提示需要下一压缩分卷

‘贰’ 如何使用java压缩文件夹成为zip包

在JDK中有一个zip工具类:

java.util.zip Provides classes for reading and writing the standard ZIP and
GZIP file formats.

使用此类可以将文件夹或者多个文件进行打包压缩操作。

在使用之前先了解关键方法:

ZipEntry(String name) Creates a new zip entry with the specified name.

使用ZipEntry的构造方法可以创建一个zip压缩文件包的实例,然后通过ZipOutputStream将待压缩的文件以流的形式写进该压缩包中。具体实现代码如下:

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipOutputStream;
/**
*将文件夹下面的文件
*打包成zip压缩文件
*
*@authoradmin
*
*/
publicfinalclassFileToZip{

privateFileToZip(){}

/**
*将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下
*@paramsourceFilePath:待压缩的文件路径
*@paramzipFilePath:压缩后存放路径
*@paramfileName:压缩后文件的名称
*@return
*/
publicstaticbooleanfileToZip(StringsourceFilePath,StringzipFilePath,StringfileName){
booleanflag=false;
FilesourceFile=newFile(sourceFilePath);
FileInputStreamfis=null;
BufferedInputStreambis=null;
FileOutputStreamfos=null;
ZipOutputStreamzos=null;

if(sourceFile.exists()==false){
System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");
}else{
try{
FilezipFile=newFile(zipFilePath+"/"+fileName+".zip");
if(zipFile.exists()){
System.out.println(zipFilePath+"目录下存在名字为:"+fileName+".zip"+"打包文件.");
}else{
File[]sourceFiles=sourceFile.listFiles();
if(null==sourceFiles||sourceFiles.length<1){
System.out.println("待压缩的文件目录:"+sourceFilePath+"里面不存在文件,无需压缩.");
}else{
fos=newFileOutputStream(zipFile);
zos=newZipOutputStream(newBufferedOutputStream(fos));
byte[]bufs=newbyte[1024*10];
for(inti=0;i<sourceFiles.length;i++){
//创建ZIP实体,并添加进压缩包
ZipEntryzipEntry=newZipEntry(sourceFiles[i].getName());
zos.putNextEntry(zipEntry);
//读取待压缩的文件并写进压缩包里
fis=newFileInputStream(sourceFiles[i]);
bis=newBufferedInputStream(fis,1024*10);
intread=0;
while((read=bis.read(bufs,0,1024*10))!=-1){
zos.write(bufs,0,read);
}
}
flag=true;
}
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}finally{
//关闭流
try{
if(null!=bis)bis.close();
if(null!=zos)zos.close();
}catch(IOExceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}
}
}
returnflag;
}

publicstaticvoidmain(String[]args){
StringsourceFilePath="D:\TestFile";
StringzipFilePath="D:\tmp";
StringfileName="12700153file";
booleanflag=FileToZip.fileToZip(sourceFilePath,zipFilePath,fileName);
if(flag){
System.out.println("文件打包成功!");
}else{
System.out.println("文件打包失败!");
}
}

}

‘叁’ 如何在java中执行zip压缩命令

publicclassZipFile{

publicstaticvoidmain(String[]args)throwsException{
//zip-rqq.zipWEB-INF-x'*.DS_Store'

ZipFilezipFile=newZipFile();
zipFile.start("zip-rqq.zipWEB-INF-x'*.DS_Store'");
}

privatesynchronizedvoidstart(Stringcmd)throwsException{
Processpro=null;
pro=Runtime.getRuntime().exec(cmd);
newDoOutput(pro.getInputStream()).start();
newDoOutput(pro.getErrorStream()).start();
}

{
publicInputStreamis;
publicDoOutput(InputStreamis){
this.is=is;
}
publicvoidrun(){
BufferedReaderbr=newBufferedReader(newInputStreamReader(this.is));
Stringstr=null;
StringBuildersb=newStringBuilder();
try{
while((str=br.readLine())!=null){
sb.append(str+" ");
}
System.out.println(sb.toString());
}catch(Exceptione){
e.printStackTrace();
}finally{
if(br!=null){
try{
br.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}

}

‘肆’ java怎么实现zip分卷压缩有关问题

直接用java 调用wondows 的cmd 就行了, 至于这个具体的命令 是7-zip提供的,这个需要去看看7-zip的文档.

‘伍’ RAR与ZIP的区别

zip将目录表放在压缩包的最后,其中列出了包中每一个文件的属性(文件名、文件大小等)和其在包中存放的位置,如果需要直接访问包中的某个文件,可以根据这个目录直接进行定位。RAR没有目录表,所有文件按照顺序依次压缩存放祥敏物。这样导致的区别就是:随机访问文件时,zip的速度要快于rar,如果赶上文件在压缩包的最后且包内文件很多,rar的速度就显得很慢了(其实也不过几秒钟)。但是顺序访问时,rar的速度就要快于zip,因为不用反复去查目录。

分卷压缩
在DOS时代,由于软盘容量很小,因此分卷压缩是很必要的。但是由于zip将文件目录表放在压缩包的最后,导致每解压一张盘,都要先将最后一张盘插进去一次读取目录,而且如果最后一张盘损坏,所有文件都无法被解压。而rar由于没有文件目录表,就没有这个问题。到了windows时代,zip则彻底放弃了分卷压缩功能。

固实压缩方式
固实压缩文件是rar的一种特殊压缩方式存储的压缩文件,它把压缩文件中的全部文件都当成一个连续数据流来看待,从而找到更多的冗余信息(Flash文件也采用了类似的技术)。压缩前会对文件进行重新排序,将拥有相似结构的文件排列在一起。这样对于大量类似的文件,压缩比有显着的提高。但是缺点也很明显的:随机解压任何一个文件都要从压缩包头部开始分析,速度较慢;对已有固实压缩包更新时速度较慢;包中任何一个文件损坏后,都不能解压出全部谨液文件。

安全性
zip和rar格式中均提供了密码保护功能,但是密码保护的安全强度不同。由于zip格式开放、代码开源,因此当出现“已知明文攻击法”之后,对zip的挑战很大。rar为了避免通过猜测文件名来使用“已知明文攻击法”,增加了“加密文件名”选项,并且使用了 AES-128 标准加密。
在数据安全性方面,rar支持“恢复记录”,在介质物理损坏或其它原因造成数据丢失时,可以按照“恢复记录”尝试对数据进行修复,而zip格式无恢复记录。ZIP 格式使用私有加密算法。 RAR 压缩文件使用更强大的 AES-128 标准加密。如果你需要加密重要的信息,选择 RAR 压缩文件格式会比较好一些。为了确实的安全性,密码长度请最少要 8 个字符。不要使用任何语言的单词作为密码,最好是任意的随机组合字符和数字,并且要注意密码的大小写。请记住,如果你遗失你的密码,你将无法取出加密的文件,就算是 WinRAR 的作者本身也无法解压加密过的文件。

开放性
zip格式拿伏公开、代码开源,而rar完全保密,不利于跨平台。java的jar包内核来自zip算法,而png格式的出现是为了避免gif格式的专利费,所以也采用了zip核心,压缩效果比gif的lzw更强。

‘陆’ java gzipoutputstream压缩比例大概是多少

It is my decision,It is my life.
JAVA对字符串的压缩与解压缩

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

public class ZipUtils {

/**

* 使用gzip进行压缩
*/
public static String gzip(String primStr) {
if (primStr == null || primStr.length() == 0) {
return primStr;
}

‘柒’ 使用java自带zip或者压缩工具压缩文件,影响文件压缩率的因素有哪些

我们通常都是用7-Zip,WinRar或好压其实几乎
7z压缩率是比较高的winrar更通用

说好压压缩比7z格式图片预览几乎不用解压,可以看到图片

‘捌’ java如何直接解压zip格式二进制流

Java代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

class ZipTest {
// 压缩
public static void zip(String zipFileName, String inputFile)
throws Exception {
File f = new File(inputFile);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName));
zip(out, f, f.getName());
System.out.println("zip done");
out.close();

‘玖’ java 压缩比

ZipOutputStream

里面有
setMethodpublic void setMethod(int method)设置用于后续条目的默认压缩方法。只要没有为单个 ZIP 文件条目指定压缩方法,并且其初始设置为 DEFLATED 时,就使用此默认值。

参数:method - 默认压缩方法
抛出:IllegalArgumentException - 如果指定的压缩方法无效
setLevelpublic void setLevel(int level)为后续的 DEFLATED 条目设置压缩级别。默认设置是 DEFAULT_COMPRESSION。

参数:level - 压缩级别 (0-9)
抛出:IllegalArgumentException - 如果压缩级别无效

阅读全文

与javazip压缩率相关的资料

热点内容
阿里云可以云服务器地址 浏览:244
熊猫绘画app如何导入图片 浏览:553
如何自己编辑手机app 浏览:922
程序员那么可爱带的项链 浏览:530
安卓系统导航mic什么意思 浏览:190
编译sdk如何输出bin文件 浏览:673
如何用html5开发app 浏览:139
怎么隐藏苹果的app 浏览:324
上海積架空气压缩机 浏览:455
51单片机换行 浏览:735
哪里可以快速学看建筑图纸app 浏览:500
内部排序的算法比较 浏览:179
服务器如何定期执行指令 浏览:931
python下载python脚本 浏览:297
台达plc远程编程 浏览:263
云计算的后台服务器 浏览:589
windows7的我的电脑咋创建文件夹 浏览:492
去视频水印的app哪个好用 浏览:384
doc转为pdf 浏览:48
华为加密壁纸怎么提取 浏览:52