当前位置:首页 » 文件管理 » 压缩流用法

压缩流用法

发布时间: 2024-01-28 04:15:45

❶ 可压缩流体的流体的可压缩性

流体的可压缩性是指流体受压,体积缩小,密度增大,除去外力后能恢复原状的性质。可压缩性实际上是流体的弹性。 液体的可压缩性用压缩系数来表示,他表示在一定温度下,压强增加一个单位体积的相对缩小率。若液体的原体积为V,则压强增加dp后,体积减少dV,压缩系数为
κ=-V^-1*dV/dp
由于液体受压体积减少,dp和dV异号,式中右侧加负号,以使κ为正值,其值越大则流体越容易压缩。κ的单位是1/Pa。
根据增压前后质量不变,压缩系数可表示为
κ=dρ/(ρdp)
液体的压缩系数随温度和压强变化。
压缩系数的倒数是体积弹性模量,即
Κ=1/κ=-Vdp/dV=ρdp/dρ
Κ的单位是Pa。 气体具有显着的可压缩性,在一般情况下,常用气体(如空气、氮气、氧气、二氧化碳等)的密度、压强温度三者的关系符合完全气体状态方程,即
p/ρ=RT/M
式中p为气体的绝对压强(N/m^2);ρ为气体的密度(kg/m^3);T为气体的热力学温度(K);R为气体常数,在标准状态下,R=8314/M(J/kg*K),M为气体的分子量。空气的气体常数R=287J/kg*K。当气体在压强很高,温度很低的状态下,或接近于液体时就不能当做完全气体看待,上式不适用。

❷ 你好,最近我也遇到用java压缩和解压,向你咨询下你的解决方案什么,你是怎么用文件流方式去压缩

package com.onewaveinc.cwds.commons.utils;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* @author fz 2010-7-30
* @Description 把指定文件夹下的所有文件压缩为指定文件夹下指定zip文件;把指定文件夹下的zip文件解压到指定目录下
*/
public class ZipUtils {

private static final Logger logger = LoggerFactory.getLogger(ZipUtils.class);

private static final String SEPARATE = "/";

/**
* @Author fz 2010-7-30
* @param sourceDir 待压缩目录
* @param zipFile 压缩文件名称
* @throws Exception
* @Description 把sourceDir目录下的所有文件进行zip格式的压缩,保存为指定zip文件
*/
public static void zip(String sourceDir, String zipFile) throws Exception {
OutputStream os = null;
// try {
os = new FileOutputStream(zipFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
ZipOutputStream zos = new ZipOutputStream(bos);
File file = new File(sourceDir);
String basePath = null;

if (file.isDirectory()) {
basePath = file.getPath();
} else {
// 直接压缩单个文件时,取父目录
basePath = file.getParent();
}
zipFile(file, basePath, zos);
zos.closeEntry();
zos.close();
// } catch (Exception e) {
// logger.error("压缩文件或文件夹" + sourceDir + "时发生异常");
// e.printStackTrace();
// }

}

/**
* @Author fz 2010-7-30
* @param source 源文件
* @param basePath 待压缩文件根目录
* @param zos 文件压缩流
* @Description 执行文件压缩成zip文件
*/
private static void zipFile(File source, String basePath, ZipOutputStream zos) {
File[] files = new File[0];
if (source.isDirectory()) {
files = source.listFiles();
} else {
files = new File[1];
files[0] = source;
}

//存相对路径(相对于待压缩的根目录)
String pathName = null;
byte[] buf = new byte[1024];
int length = 0;
try {
for (File file : files) {
if (file.isDirectory()) {
pathName = file.getPath().substring(basePath.length() + 1) + SEPARATE;
zos.putNextEntry(new ZipEntry(pathName));
zipFile(file, basePath, zos);
} else {
pathName = file.getPath().substring(basePath.length() + 1);
InputStream is = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
zos.putNextEntry(new ZipEntry(pathName));
while ((length = bis.read(buf)) > 0) {
zos.write(buf, 0, length);
}
is.close();
}
}
} catch (Exception e) {
logger.error("压缩文件" + source + "时发生异常");
e.printStackTrace();
}
}

/**
* @Author fz 2010-7-30
* @param zipfile 待解压文件
* @param destDir 解压文件存储目录
* @throws Exception
* @Description 解压zip文件,只能解压zip文件
*/
@SuppressWarnings("unchecked")
public static void unZip(String zipfile, String destDir) throws Exception {
destDir = destDir.endsWith(SEPARATE) ? destDir : destDir + SEPARATE;
byte b[] = new byte[1024];
int length;
ZipFile zipFile;
// try {
zipFile = new ZipFile(new File(zipfile));
Enumeration enumeration = zipFile.getEntries();
ZipEntry zipEntry = null;
while (enumeration.hasMoreElements()) {
zipEntry = (ZipEntry) enumeration.nextElement();
File loadFile = new File(destDir + zipEntry.getName());
if (zipEntry.isDirectory()) {
loadFile.mkdirs();
} else {
if (!loadFile.getParentFile().exists()) {
loadFile.getParentFile().mkdirs();
}
OutputStream outputStream = new FileOutputStream(loadFile);
InputStream inputStream = zipFile.getInputStream(zipEntry);
while ((length = inputStream.read(b)) > 0)
outputStream.write(b, 0, length);
outputStream.close();
inputStream.close();
}
}
zipFile.close();
// } catch (IOException e) {
// logger.error("解压文件" + zipfile + "时发生异常");
// e.printStackTrace();
// }
}

}

❸ 关于 Delphi 中压缩流和解压流的应用

软件开发者不免都要遇到压缩数据的问题!经常使用Delphi的朋友都知道 它为我们提供了两个流类(TCompressionStream和TDepressionStream)来完成数据的压缩和解压缩 但美中不足的是 该流在Delphi 的帮助备誉中没有详细的说明 使得它们在使用起来有一定得困难 其实在Delphi系统中提供了这两个类的源代码和库 保存在Delphi 光盘的InfoExtraslib Src和InfoExtraslibObj目录中(其中OBJ目录中保存的是库 Src目录中保存的是源代码 感兴趣的朋友可以看看) 本人在使用的过程中 对它们有了一定的了解

一 类的说明

基类 TCustomZlibStream 类TCustomZlibStream 是类TCompressionStream和TDepressionStream 类的基类 它主要有一个属性 OnProgress 在类进行压缩或解压缩的过程中会发生这个的事件 它的定义如下

Procere OnProgress (Sender: TObject); dynamic; 压缩类TCompressionStream 类TCompressionStream除了继承了基类的 OnProgress 属性外 又增加了一个属性 CompressionRate 它的定义如下

Property CompressionRate: Single read GetCompressionRate;通过这个属性 可以得到压缩比 它的几个个重要的方法定义如下

Constructor TCompressionStream Create (CompressionLevel: TCompressionLevel; Dest: TStream);其中 TpressionLevel(压缩类型) 它由如仿中段下几个定义

① clNone 不进行数据压缩

② clFastest 进行快速压缩 牺牲压缩效率

③ clDefault 进行正常压缩

④ clMax 进行最大化压缩 牺牲速度

Dest 目的流 用于存放压缩过的数据

Function TCompressionStream Write (const Buffer; Count: Longint): Longint;其中 Buffer 需要压缩的数据

Count: 需要压缩的数据的字节数

函数返回写入流的字节数

压缩类TCompressionStream的数据只能是写入的 如果试图从其内部读取数据 将发生一个 Error 异常 需要压缩的数据通过方法 Write写入流中 在写入的过程中就被压缩 并保存在由构造函数提供的内存流(TmemoryStream)中 同时触发 OnProcess 事件

解压缩类 TDepressionStream :和压缩类TpressionStream 相反 它的数据是只能读出的 如果试培坦图往其内部写数据 将发生一个 Error 异常 它的几个重要方法定义如下

构造函数 Constructor Create(Source: TStream);

其中 Source 是保存着压缩数据的流

Function Read(var Buffer; Count: Longint): Longint;数据读出函数 Buffer 存数据缓冲区

Count: 缓冲区的大小

函数返回读出的字节数

数据在读出的过程中 数据被解压缩 并触发 OnProcess 事件

二 类的使用

通过类TCompressionStream和TdepressionStream的配合使用 我们可以非常方便地完成数据的压缩和解压 下面就是本人在编写屏幕拷贝程序中的使用例子

Procere TClientForm GetScreen;VarSourceDC DestDC:HDC;Bhandle:HBITMAP;BitMap:TBitMap;BmpStream Deststream:TMemoryStream;SourceStream:TCompressionStream;Count:Integer;BeginSourceDC:=CreateDC( display nil);{得到屏幕的 DC}DestDC:=CreateCompatibleDC(SourceDC);{建立临时 DC}Bhandle:=CreateCompatibleBitmap(SourceDC Screen Width Screen Height);{建立位图}SelectObject(DestDC Bhandle);{选择位图DC}BitBlt(DestDC Screen Width Screen Height SourceDC SRCCOPY);{拷贝整个屏幕}BitMap:=TBitMap Create;BitMap Handle := Bhandle;{保存屏幕位图到 BitMap中}BmpStream:=TMemoryStream Create;BitMap SaveToStream(BmpStream);{建立位图数据的内存流}count:=BmpStream Size;{保存位图的大小}DestStream:=TMemoryStream Create;{目标流 保存压缩数据}SourceStream:=TCompressionStream Create(clMax DestStream);{构建压缩流 采用最大化压缩 并保存到目标流中}tryBmpStream SaveToStream(SourceStream);{压缩位图流}SourceStream Free;{完成压缩 释放压缩流}BmpStream Clear;{清空原来位图流}BmpStream WriteBuffer(Count Sizeof(Count));{将原来位图的大小保存到新的位图流中 以便使用}BmpStream CopyFrom(DestStream );{将压缩数据附加到新的位图流后面}BmpStream Position := ;NMStrm PostIt(BmpStream);{发送位图流}finallyDestStream Free;BmpStream Destroy ;BitMap Destroy;DeleteDC(SourceDC);ReleaseDC(Bhandle SourceDC);end;{释放有关资源}End;该过程得到整个屏幕的图象拷贝 并利用压缩流SourceStream和内存流 Deststream将位图压缩 并重新把位图大小和压缩数据流保存到位图流中 发送出去 发送位图大小的目的是在解压前来确定需要的内存空间

lishixin/Article/program/Delphi/201311/24929

❹ 压缩文件夹怎么压缩

把文件变成压缩包的形式,可使用WinRAR压缩软件实现打包压缩。下面给大家整理了相关的内容分享,感兴趣的小伙伴不要错过,赶快来看一下吧!

方法步骤如下:

1、在电脑中打开浏览器,使用网络搜索在搜索框中输入“WinRAR”,点击后面的“网络一下”进行搜索,找到带有“官网”字样的搜索结果,点击“立即下载”进行WinRAR安装包的下载。



批定压缩分卷大小

( 按字节计算),1M = 1024K,1K = 1024字节,填写数字即可。

其实办法很简单,就是在你压缩这个文件时,分成几个带分卷压缩包,分卷包大小设置为2M即可,比如:原来文件名为123.rar(3M),压缩成分卷包后为123.part1.rar(2M)与123.part2.rar(1M)两个文件,这样你就可以上传了。

❺ 什么是rar文件如何压缩...

RAR是一种压缩文件,属于WinRAR程序的文档。
WinRAR 是 32 位 Windows 版本的 RAR 压缩文件管理器 - 一个允许你创建、管理和控制压缩文件的强大工具。存在一系列的 RAR 版本,应用于数个操作系统环境:Windows、Linux、FreeBSD 、DOS、OS/2、MacOS X。
运行于 Windows 下的 RAR 存在两个版本:

?图形用户界面 版本- WinRAR.exe;

?命令行 控制台(文本模式)版本 - Rar.exe。

WinRAR 特性

?完全支持 RAR 和 ZIP 2.0 压缩文件;

?高度成熟的原创压缩算法;

?对于文本、声音、图像和 32-位和 64-位 Intel 可执行程序压缩的特殊优化算法;

?外壳界面 包括 拖放 和 向导;

?命令行界面;

?非 RAR 压缩文件 (7Z、ACE、ARJ、BZ2、CAB、GZ、ISO、JAR、LZH、TAR、UUE、Z)管理;

?固实 压缩,比常规方法更能够提升压缩率 10% - 50%,尤其是在压缩大量的小文件,类似的文件时;

?多卷压缩文件;

?使用默认的或是选择的自解压模块创建 自解压 文件 (也可用于分卷);

?恢复 物理受损的压缩文件;

?恢复卷 允许重建多卷压缩丢失的卷。

?支持 Unicode 文件名;

用WinRAR打开
下载 http://down.exedown.com/Html/25003.html
使用:
压缩文件格式在现代办公应用中,常常会遇到。为什么要使用压缩格式?常见的压缩格式有哪几种?怎样压缩和解压缩?本文将使你压缩解压一点通。

为什么要压缩

文件压缩,顾名思义,就是把一个大的文件变小的过程。使用压缩格式的理由有很多。如:我们经常用1.44MB软盘在两台电脑之间传递文件。文件太大怎么办?压缩!硬盘中的资料越来越多,也越来越乱,如果将它们压缩打包后存放,不仅节约了空间还利于查找;在带宽还不能尽如人意的今天,通过网络传输文件(下载、收发邮件)当然也是越小越好;实时的影音服务(像流媒体技术)也需要使用压缩技术……

常见的压缩格式

压缩格式有很多,比如:常见的ZIP格式、RAR格式、CAB格式、ARJ格式等等。还有一些比较少见的压缩格式,如:BinHex、HQX、LZH、 Shar、TAR、GZ格式等等。另外,像MP3、VCD和DVD等音频、视频文件都使用了压缩技术,但不是平常的压缩,而一种实时的压缩,是在播放时直接解压。我们最常见的压缩软件就是大名鼎鼎的WinZip和WinRAR,只要掌握了其中一种,对于大部分的压缩格式就可以“通吃”了。

WinRAR的使用

WinRAR通常能达到50%以上的压缩率,不仅支持 RAR 和 ZIP 压缩文件,还支持对诸如CAB、ARJ、LZH、TAR、GZ、ACE、UUE、BZ2、JAR、ISO等十几种非RAR压缩文件的管理。
画面很简洁,像资源管理器?当将鼠标指针移动到按钮上时,会浮现出相应的功能提示。

压缩

软件提供了一个非常友好的向导功能,跟着它一步步做就可以顺利完成。
点击图1工具栏上的向导按钮,弹出如图2所示的对话框,我们先来创建一个压缩文件。选择“创建新的压缩文件”,点击�下一步(如图二)。

这里需要你选择要压缩的文件。可以压缩一个文件,当然也可以把几个文件乃至整个文件夹都选中(表示压缩其中的所有文件)。像在资源管理器中一样,用鼠标和键盘配合选定连续或不连续的文件(夹)即可(连续要哪文件的话,就先用鼠标点击开始的文件再按住Shirt健点击最后一个文件;单选的话,按住Ctrl健再用鼠标点击想到的文件)。完成后点击确定。

在这个对话框中,需要你输入压缩后的文件名称。如果想改变存放位置,点击浏览,否则默认存放在源文件所在目录。
有几个问题要解决一下,需要说明的是:制作压缩文件的时候,最好考虑接受方是否具备解压缩的工具。如果没有,就选择“自解压(.EXE)压缩文件”如图五。

在压缩时,也可以用右健来压缩,如果名字不想自定义,也没有其它要求,就直接点 添加到“×××文件.rar“,如果还有其它要求,如制作成自解压或改个名,就用 添加到档案文件。。。就行了如图七。

解压缩

收到了一个压缩文件之后,怎样把它解压缩?当然,你可以先启动WinRAR,然后像上面的压缩过程一样利用向导来完成,只要你的机器上已经安装了WinRAR,就试试下面这些更简单的解压的办法。

1、双击法

安装完WinRAR之后,系统已经自动将RAR和ZIP等格式的压缩文件与这个解压工具关联起来了。直接在压缩文件上双击鼠标左键,就能打开WinRAR的窗口。

观察一下与图1有什么区别?看看标题栏,再看看下面的文件浏览窗口……你的压缩包中的文件已经显示在了你的面前,不是吗?想解压缩吗?单击工具栏上的[解压缩](如图6)。默认情况下,系统会以你的压缩文件名为路径名,在当前文件夹下再建立一个新的文件夹,所有解压缩出来的内容都放在这个文件夹内。如果你不满意,看到右边的目录树了吗?在里面点击选择你想要存放的位置吧。如果你只想解压缩其中的部分文件(夹),可以先选中这些文件,再点击[解压缩]即可。

2、右键法

在压缩文件的文件名(或文件图标)上单击鼠标右键(如图7)。选择“释放文件(A)…”,将会弹出如图6所示的对话框,让你选择解压缩的位置。如果你还觉得麻烦的话,干脆一步到位,直接点击图中鼠标所指的带路径的选项吧。稍安勿躁,马上你就可以看到压缩文件的本来面目了。

是不是很简单?其实,在资源管理器窗口中选中几个要压缩的文件后,同样可以用鼠标右键的方法对它进行压缩(如图8,这里还可以进行更多设置呢)。不信你试试?

其他用法

WinRAR除了上面两种最基本的功能之外,还有许多功能:向一个压缩文件中添加文件;将一个压缩文件中的部分文件清理出门(删除);给一个解压文件加密;分卷压缩如此等等。只要你学会了压缩和解压缩的基本用法,仔细研究一下WinRAR的菜单和帮助吧,相信难不倒你的。

热点内容
数据库映射是什么 发布:2025-01-20 05:41:52 浏览:981
中国植物数据库 发布:2025-01-20 05:38:50 浏览:334
C语言能吗 发布:2025-01-20 05:37:25 浏览:558
onedrive存储位置 发布:2025-01-20 05:35:16 浏览:826
导航广播怎么存储电台 发布:2025-01-20 05:35:14 浏览:310
歌的压缩包 发布:2025-01-20 05:23:53 浏览:391
如何通过服务器ip查到电话 发布:2025-01-20 05:02:34 浏览:8
我的世界服务器被房主打 发布:2025-01-20 05:02:27 浏览:284
如何找到相同的配置 发布:2025-01-20 04:53:59 浏览:218
看linux版本 发布:2025-01-20 04:40:37 浏览:20