javazip壓縮包過大解壓失敗的原因:網路傳輸不好導致文件下載損壞、網站提供的RAR壓縮包最初被損壞、使用的下載工具不夠完善。我們可以通過壓縮軟體里的「修復壓縮文件」解決javazip壓縮包過大解壓失敗的問題。
⑵ 在java中打包,為什麼要用jar,直接生成rar壓縮不可以嗎好處是什麼呀
不可以.
首先壓縮策略不同.
jar是採用zip的壓縮策略.
跟rar不一樣.
所以可以直接生成zip.然後改
後綴名
jar.
而不能直接生成rar.
這個所謂的好處..
java環境下.可以直接運行jar文件.
而不能直接運行
rar文件
...
這是顯而易見的吧.jar裡面的class能被import.
顯然rar也是不行的.....
⑶ java壓縮文件的問題
如果只從你給的代碼來看的話
file.getName()這個方法就是來自最開頭地方引入的文件import java.util.zip.ZipEntry ;
zipOut.setComment("www.mldnjava.cn") ; // 設置注釋
壓縮包里有個注釋功能,就相當於備注一樣,你在壓縮一個包的過程中,你可以選擇給它寫點什麼東西,以方便你根據注釋想到裡面的大概內容。
⑷ 怎樣用JAVA解壓winrar加密的zip包(不要調用winrar的命令)
WinRAR <命令> -<參數1> -<參數N> <壓縮包> <文件...> <@列表文件...> <解壓縮路徑\>
命令 要 WinRAR 運行的字元組合代表功能
參數 切換操作指定類型,壓縮強度,壓縮包類型,等等的定義。
壓縮包 要進行的壓縮包名。
文件 要進行的文件名。
列表文件 列表文件是包含要處理文件名稱的純文本。文件名應該在第一卷啟動。可以在列表文件中使用//字元後添加註釋。例如,你可以包含兩列字元串創建 backup.lst: c:\work\doc\*.txt //備份文本文檔 c:\work\image\*.bmp //備份圖片 c:\work\misc 並接著運行: rar a backup @backup.lst 你可以在命令行中同時指定普通的文件名和列表文件名。
解壓縮路徑 只與命令 e 和 x ,搭配使用。指出解壓縮文件添加的位置。如果文件夾不存在時,會自動創建。
注意事項
a) 如果未指定 文件 或是 列表文件 時,WinRAR 將會以預設的 *.* 運行全部的文件;
b) 如果未指定壓縮包擴展名時,WinRAR 將會使用在 壓縮配置 中選定的默認壓縮格式。但你可以指定 .RAR 或 .ZIP 擴展名來替換它們;
c) 在命令行所輸入的參數會替換相同的配置設置值;
d) 在命令 c、e、s、t、rr、k 和 x 可在壓縮包名中使用通配符。如此可以用單一的命令來進行超過一個以上的壓縮包,除此之外,如果你指定 -r 參數於這些命令時,它們將會搜索在子文件夾中的壓縮包;
e) 某些命令和參數只應用在 RAR 壓縮包,有些則在 RAR 和 ZIP 都可使用,而某些則可應用在全部的壓縮格式。這一些都得看壓縮格式所提供的特性而定;
f) 命令和參數的大小寫是相同意思的,你可以用大寫或者小寫來下命令均可
⑸ java 如何將多個文件打包成一個zip後進行下載
打包壓縮的如下:
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));
for(int i=0;i<fileList.size();i++){
String filename = (String)fileList.get(i);
File file = new File(filename);
zip(out,file);
}
out.close();
下載的如下:
private int blockSize=65000;
File file = new File(sourceFilePathName);
FileInputStream fileIn = new FileInputStream(file);
int readBytes = 0;
readBytes = fileIn.read(b, 0, blockSize);
totalRead += readBytes;
out.write(b, 0, readBytes);
代碼大致如此,請參考。
⑹ 如何使用java壓縮文件夾成為zip包(最簡單的
import java.io.File;
public class ZipCompressorByAnt {
private File zipFile;
/**
* 壓縮文件構造函數
* @param pathName 最終壓縮生成的壓縮文件:目錄+壓縮文件名.zip
*/
public ZipCompressorByAnt(String finalFile) {
zipFile = new File(finalFile);
}
/**
* 執行壓縮操作
* @param srcPathName 需要被壓縮的文件/文件夾
*/
public void compressExe(String srcPathName) {
System.out.println("srcPathName="+srcPathName);
File srcdir = new File(srcPathName);
if (!srcdir.exists()){
throw new RuntimeException(srcPathName + "不存在!");
}
Project prj = new Project();
Zip zip = new Zip();
zip.setProject(prj);
zip.setDestFile(zipFile);
FileSet fileSet = new FileSet();
fileSet.setProject(prj);
fileSet.setDir(srcdir);
//fileSet.setIncludes("**/*.java"); //包括哪些文件或文件夾 eg:zip.setIncludes("*.java");
//fileSet.setExcludes(...); //排除哪些文件或文件夾
zip.addFileset(fileSet);
zip.execute();
}
}
public class TestZip {
public static void main(String[] args) {
ZipCompressorByAnt zca = new ZipCompressorByAnt("E:\test1.zip ");
zca.compressExe("E:\test1");
}
}
/*如果 出現ant 的 52 51 50 等版本問題 可以去找對應的ant-1.8.2.jar 我開始用的ant-1.10.1.jar 就是這個包版本高了 一直報verson 52 版本問題*/
⑺ java代碼實現 導出zip包,無法打開zip壓縮包
package com.lch.test;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class ZIP {
public static void main(String[] argv) throws Exception {
ZipFile zf = new ZipFile("E:\\wk\\LBSLEMIS201106141057\\LBSLEMIS\\test\\com\\lch\\test\\filename.zip");
for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {
String zipEntryName = ((ZipEntry) entries.nextElement()).getName();
System.out.println(zipEntryName);
}
}
}
用javad 的ZipFile類的ZipEntry方法試一下 找到ZIP裡面的ZipEntry方法 讀取Zip裡面壓縮文件的內容
有可能會引用外包
你好,我不知道你說的dzp是什麼格式文件,但如果是zip的壓縮文件,可以看下我的這段代碼
ZipFile file = new ZipFile("d:\\1.zip");
ZipEntry entry = file.getEntry("1.xml"); //假如壓縮包里的文件名是1.xml
InputStream in=file.getInputStream(entry);
最後就是按照java中一貫的流的處理方式即可
可以不解壓,zip包里的一個對象就是一個ZipEntry
找到你想要的那個ZipEntry,用文流寫出來就可以了。追問通過ZipEntry,然後用流就可以讀出裡面的內容了嗎?謝謝指點!
回答/**
* 解壓
* @param root 輸出目標
* @param zipfile zip文件
*/
protected void unzip(File root, File zipfile, String file) throws Exception {
// 解壓文件不存在時返回
if (!zipfile.exists()) {
return;
}
// 釋放目錄不存時創建
if (!root.exists()) {
root.mkdirs();
}
// 釋放目錄不為目錄時返回
if (!root.isDirectory()) {
return;
}
FileInputStream fin = new FileInputStream(zipfile);
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry entry = null;
while ((entry = zin.getNextEntry()) != null) {
// if (!entry.getName().endsWith(file)) {
// continue;
// }
File tmp = new File(root, entry.getName());
if (entry.isDirectory()) {
tmp.mkdirs();
} else {
byte[] buff = new byte[4096];
int len = 0;
tmp.getParentFile().mkdirs();
FileOutputStream fout = new FileOutputStream(tmp);
while ((len = zin.read(buff)) != -1) {
fout.write(buff, 0, len);
}
zin.closeEntry();
fout.close();
}
}
}
這里完整的解壓代碼。
// if (!entry.getName().endsWith(file)) {
// continue;
// }
這段打開就是只解出一個你指定的文件。
下面是測試用的。
public static void main(String[] args) throws Exception {
new CommonFiles().unzip(new File("D:\\"), new File("D:\\test.zip"),"file.txt");
}
這個例子會在D盤生成型個test文件夾,file.txt就會在裡面,(裡面也可能會有多個文件夾,這個取決於壓縮包里文件的度)
⑻ java程序 壓縮指定文件 格式(zip)
直接右鍵單擊文件夾(所有的文件存放在一個文件夾裡面)然後選擇壓縮 前提是你要有 zip壓縮程序
⑼ 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項目文件打包成jar
是jar.exe
要如何建立Jar文件呢?只要使用JDK提供的Java的文件包工具,就是jar.exe,這個就可以將Java程序打包成一個jar文件了。其實就是一個壓縮包形式的。
這個jar和JDK中的java或者javac 的用法差不多。
呵呵,以我的為例,我的JDK的安裝路徑是:D:\Program Files\Java\jdk1.5.0_12\bin
所以你想詳細的查看jar怎麼用就可以在命令提示符中輸入:
D:\>cd Program Files\Java\jdk1.5.0_12\bin\jar
這樣你就可以查看jar的使用了。
希望可以幫到你!