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等。