import java.io.File;
import org.apache.tools.zip.ZipOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import dianda.cwmanage.*;
import dianda.com.util.Format;
public class CompressBook {
public CompressBook() {
}
public void zip(String inputFileName) throws Exception {
String zipFileName="c:\test.zip";//打包后文件名字
System.out.println(zipFileName);
zip(zipFileName, new File(inputFileName));
}
private void zip(String zipFileName, File inputFile) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out, inputFile, "");
System.out.println("zip done");
out.close();
}
private void zip(ZipOutputStream out, File f, String base) throws Exception {
if (f.isDirectory()) {
File[] fl = f.listFiles();
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));
base = base.length() == 0 ? "" : base + "/";
for (int i = 0; i < fl.length; i++) {
zip(out, fl[i], base + fl[i].getName());
}
}
else {
out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
System.out.println(base);
while ( (b = in.read()) != -1) {
out.write(b);
}
in.close();
}
}
}
2. 请问压缩包设计了密码,什么样的方法才可以破解掉.......
用破解器暴力破解
没有哪个密码是破解不了的,只有难被破解的密码,难是建立在复杂的基础上的,也就是说密码越复杂,越难破解,比如你设个200位英文大小写加数字和符号的密码,绝对难破解
3. 怎么做压缩包
怎么做带密码的压缩包,下面就一起来看看吧。
1、首先在喜人Windows8.1中,打开到需要压缩文件的目录。
4. 软件设计的基本流程是什么,怎么将文件压缩成压缩包
下载一个压缩软件,然后把文件添加到压缩软件里 你一看就明白了,其实很简单,推荐360好压软件。
5. 怎么制作压缩包
选中需要压缩的文件夹,右键弹出添加到“(该文件.rar)”,点击即可压缩。
压缩包的基本原理是查找文件内的重复字节,并建立一个相同字节的“词典”文件,并用一个代码表示,比如在文件里有几处有一个相同的词“中华人民共和国”,用一个代码表示并写入“词典”文件,这样就可以达到缩小文件的目的。
原理:
如果从互联网上下载了许多程序和文件,可能会遇到很多压缩文件。这种压缩机制是一种很方便的发明,尤其是对网络用户,因为它可以减小文件中的比特和字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用空间。
在下载了文件后,计算机可使用WinRar或Stuffit这样的程序来展开文件,将其复原到原始大小。如果一切正常,展开的文件与压缩前的原始文件将完全相同。压缩包是计算机压缩文件、文件夹的载体。
无论是什么压缩软件,其目的就只有一个:减少冗余数据。例如某行字是“000011111”,就可以压缩为“0(4)1(5)”,在保证数据没有受损的同时,减少其占用的体积。
6. 压缩文件的压缩原理
把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。
由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,请在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩包已经是另一种文件格式了,如果想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等。
有两种形式的重复存在于计算机数据中,zip就是对这两种重复进行了压缩。
一种是短语形式的重复,即三个字节以上的重复,对于这种重复,zip用两个数字:1.重复位置距当前压缩位置的距离;2.重复的长度,来表示这个重复,假设这两个数字各占一个字节,于是数据便得到了压缩,这很容易理解。
一个字节有 0 - 255 共 256 种可能的取值,三个字节有 256 * 256 * 256 共一千六百多万种可能的情况,更长的短语取值的可能情况以指数方式增长,出现重复的概率似乎极低,实则不然,各种类型的数据都有出现重复的倾向,一篇论文中,为数不多的术语倾向于重复出现;一篇小说,人名和地名会重复出现;一张上下渐变的背景图片,水平方向上的像素会重复出现;程序的源文件中,语法关键字会重复出现(我们写程序时,多少次前后、paste?),以几十 K 为单位的非压缩格式的数据中,倾向于大量出现短语式的重复。经过上面提到的方式进行压缩后,短语式重复的倾向被完全破坏,所以在压缩的结果上进行第二次短语式压缩一般是没有效果的。
第二种重复为单字节的重复,一个字节只有256种可能的取值,所以这种重复是必然的。其中,某些字节出现次数可能较多,另一些则较少,在统计上有分布不均匀的倾向,这是容易理解的,比如一个 ASCII 文本文件中,某些符号可能很少用到,而字母和数字则使用较多,各字母的使用频率也是不一样的,据说字母 e 的使用概率最高;许多图片呈现深色调或浅色调,深色(或浅色)的像素使用较多(这里顺便提一下:png 图片格式是一种无损压缩,其核心算法就是 zip 算法,它和 zip 格式的文件的主要区别在于:作为一种图片格式,它在文件头处存放了图片的大小、使用的颜色数等信息);上面提到的短语式压缩的结果也有这种倾向:重复倾向于出现在离当前压缩位置较近的地方,重复长度倾向于比较短(20字节以内)。这样,就有了压缩的可能:给 256 种字节取值重新编码,使出现较多的字节使用较短的编码,出现较少的字节使用较长的编码,这样一来,变短的字节相对于变长的字节更多,文件的总长度就会减少,并且,字节使用比例越不均匀,压缩比例就越大。
7. java设计 ZIP格式压缩/解压系统设计
给你一点关键部分的提示
你可能需要用到apache zip这个组件
http://camel.apache.org/zip-dataformat.html
// zipFileName为要解压缩的zip为文件名,例:c:\\filename.zip
// outputDirectoty为解压缩后文件名,例:c:\\filename
public void unZip(String zipFileName, String outputDirectory)
throws Exception {
InputStream in = null;
FileOutputStream out = null;
try {
zipFile = new ZipFile(zipFileName);
java.util.Enumeration e = zipFile.getEntries();
// org.apache.tools.zip.ZipEntry zipEntry = null;
createDirectory(outputDirectory, "");
while (e.hasMoreElements()) {
zipEntry = (ZipEntry) e.nextElement();
System.out.println("unziping " + zipEntry.getName());
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
System.out.println("创建目录:" + outputDirectory
+ File.separator + name);
} else {
String fileName = zipEntry.getName();
fileName = fileName.replace('\\', '/');
// System.out.println("测试文件1:" +fileName);
if (fileName.indexOf("/") != -1) {
createDirectory(outputDirectory, fileName.substring(0,
fileName.lastIndexOf("/")));
fileName = fileName.substring(
fileName.lastIndexOf("/") + 1, fileName
.length());
}
try {
f = new File(outputDirectory + File.separator
+ zipEntry.getName());
in = zipFile.getInputStream(zipEntry);
out = new FileOutputStream(f);
byte[] by = new byte[100000];
int c;
while ((c = in.read(by)) != -1) {
out.write(by, 0, c);
}
out.flush();
} catch (Exception ee) {
} finally {
if (in != null) {
in.close(); //解压完成后注意关闭输入流对象
}
if (out != null) {
out.close(); //解压完成后注意关闭输出流对象
}
}
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
} finally {
zipFile.close(); //解压完成后注意关闭apache自带zip流对象
}
}
8. 压缩文件是什么意思
简单的说,就是经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的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、然后双击解压第一个分卷,即可
注:分卷解压的文件必须是连续的,若分卷未下载完整,则解压时自然会提示需要下一压缩分卷
TOMMY
贡士
最佳答案
-
由投票者8个月前选出
压缩工具
WinRAR,流行好用的
Windows
压缩工具
WinRAR
是一个强大的压缩文件管理工具。它能备份你的数据,减少你的
E-mail
附件的大小,解压缩从Internet上下载的
RAR、ZIP
和其他格式的压缩文件,并能创建
RAR
和
ZIP
格式的压缩文件。在购买之前,你可以下载试用版本。
软件介绍
WINRAR
是目前流行的压缩工具,界面友好,使用方便,在压缩率和速度方面都有很好的表现。其压缩率比高,3.x
采用了更先进的压缩算法,是现在压缩率较大、压缩速度较快的格式之一。
3.3
增加了扫描压缩文件内病毒、解压缩“增强压缩”
ZIP
压缩文件的功能,
升级了分卷压缩的功能等。
主要特点:
1、
对
RAR
和
ZIP
的完全支持;
2、
支持
ARJ、CAB、LZH、ACE、TAR、GZ、UUE、BZ2、JAR、ISO
类型文件的解压;
3、
多卷压缩功能;
4、
创建自解压文件,可以制作简单的安装程序,使用方便;
5、
压缩文件大小可以达到
8,589,934
TB;
6、
锁定和强大的数据恢复记录功能,对数据的保护无微不至,新增的恢复卷的使用功能更强大
9. 毕业设计! 用Java设计一个文件的压缩与解压缩软件! 跪求!
这是我以前写的一个,你看看,应该和这个差不多。。。。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import javax.swing.JFrame;
public class TestZip extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
String doc;
long doczipsize = 0;
TextArea ta;
TextField infotip;
public void init() {
setLocation(200,150);
setTitle("文件压缩器");
setSize(600,450);
BorderLayout b = new BorderLayout();
setLayout(b);
MenuBar menubar = new MenuBar();
setMenuBar(menubar);
Menu fileMenu = new Menu("File",true);
Menu aboutMenu = new Menu("About",true);
MenuItem mi1 = new MenuItem("打开");
MenuItem mi2 = new MenuItem("压缩");
MenuItem mi3 = new MenuItem("解压");
MenuItem mi4 = new MenuItem("退出");
MenuItem mi0 = new MenuItem("关于");
fileMenu.add(mi1);
fileMenu.add(mi2);
fileMenu.add(mi3);
fileMenu.add(mi4);
aboutMenu.add(mi0);
menubar.add(fileMenu);
menubar.add(aboutMenu);
mi1.addActionListener(this);
mi2.addActionListener(this);
mi3.addActionListener(this);
mi4.addActionListener(this);
mi0.addActionListener(this);
ta = new TextArea();
add(BorderLayout.CENTER,ta);
infotip = new TextField();
add(BorderLayout.SOUTH,infotip);
setVisible(true);
}
private void newFile() {
FileDialog dlg = new FileDialog(this,"打开",FileDialog.LOAD);
dlg.setVisible(true);
String filename = dlg.getDirectory() + dlg.getFile();
try {
File f = new File(filename);
FileReader freader = new FileReader(f);
char[] buffer = new char[4096];
int length;
ta.setText("");
while((length = freader.read(buffer)) != -1) {
String s = new String(buffer,0,length);
doc += s;
}
freader.close();
doczipsize = f.length();
showTextInfo();
}catch (IOException e) {
e.printStackTrace();
}
}
private void openFile() {
FileDialog dlg = new FileDialog(this,"解压",FileDialog.LOAD);
dlg.setVisible(true);
String filename = dlg.getDirectory() + dlg.getFile();
try {
File ff = new File(filename);
if(!ff.exists()) {
return;
}
FileInputStream fileis = new FileInputStream(ff);
ZipInputStream zipis = new ZipInputStream(fileis);
zipis.getNextEntry();
DataInputStream dis = new DataInputStream(zipis);
doc = dis.readUTF();
dis.close();
doczipsize = ff.length();
showTextInfo();
}catch (IOException e) {
e.printStackTrace();
}
}
private void saveFile() {
FileDialog dlg = new FileDialog(this,"压缩",FileDialog.LOAD);
dlg.setVisible(true);
String filename = dlg.getDirectory() + dlg.getFile();
try {
if(!filename.endsWith(".zip")) {
filename += ".zip";
}
File f = new File(filename);
if(!f.exists()) {
f.createNewFile();
}
FileOutputStream fileos = new FileOutputStream(f);
ZipOutputStream zipos = new ZipOutputStream(fileos);
zipos.setMethod(ZipOutputStream.DEFLATED);
zipos.putNextEntry(new ZipEntry("zip"));
DataOutputStream dos = new DataOutputStream(zipos);
/*
doc = "";
doc = ta.getText();
*/
dos.writeUTF(doc);
dos.close();
doczipsize = f.length();
showTextInfo();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
TestZip zip = new TestZip();
zip.init();
}
private void showTextInfo() {
ta.replaceRange(doc, 0, ta.getText().length());
infotip.setText("uncompressed size:" + doc.length() + " compressed size:" + doczipsize);
}
public void actionPerformed(ActionEvent e) {
String arg = e.getActionCommand();
if("打开".equals(arg)) {
newFile();
} else if("压缩".equals(arg)) {
saveFile();
} else if("解压".equals(arg)) {
openFile();
} else if("退出".equals(arg)) {
System.exit(0);
} else if("关于".equals(arg)) {
}
}
}
10. 压缩文件格式(zip、rar)哪个更好
rar文件格式更好,rar 的压缩率显着高于 zip,与 7z 相当。
rar 的文件名使用 Unicode 存储. 而 zip 由于历史原因, 文件名不支持 Unicode 编码 (新版的 zip 规范允许指定 Unicode 编码, 但大部分应用程序支持不理想), 存在乱码问题,。
例如日文 Windows 下创建的 zip 压缩包, 如果在简体中文 Windows 下直接解压, 文件名里非 ASCII 字符就会变成乱码。与 7z 相比, rar 支持恢复记录,压缩文件损坏时一般都可以直接修复而无需重新下载,所以很多资源发布组都会使用 rar 打包并且加上恢复记录 (rr5)。
压缩原理:
由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,请在脑海里想象一幅蓝天白云的图片。
对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。
其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。
如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。
但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。
当然,压缩包已经是另一种文件格式了,如果想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等。