国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java 壓縮和解壓縮Zip、Jar、Gzip文件實(shí)例代碼

java 壓縮和解壓縮Zip、Jar、Gzip文件實(shí)例代碼

2020-06-14 11:11lqh JAVA教程

本文主要介紹java壓縮和解壓縮Zip、Jar、Gzip文件的知識(shí),這里整理了相關(guān)資料,并附示例代碼有興趣的小伙伴可以參考下

我們經(jīng)常會(huì)使用WinZIP等壓縮軟件將文件進(jìn)行壓縮以方便傳輸。在java里面也提供了將文件進(jìn)行壓縮以減少傳輸時(shí)的數(shù)據(jù)量的類,可以很方便的將文件壓縮成ZIP、JAR、GZIP等形式,GZIP主要是在Linux系統(tǒng)下的壓縮文件。

下面主要講的就是ZIP形式的壓縮文件,而JAR、GZIP形式的壓縮文件也是類似的用法。

ZIP是一種很常見(jiàn)的壓縮形式,在java中要實(shí)現(xiàn)ZIP的壓縮主要用到的是java.util.zip這個(gè)包里面的類。主要有ZipFile、 ZipOutputStream、ZipInputStream和ZipEntry。ZipOutputStream是用來(lái)壓縮文件 的,ZipInputStream和ZipFile是用來(lái)解壓縮文件的,在壓縮和解壓縮的過(guò)程中,ZipEntry都會(huì)用到。在java的Zip壓縮文件 中,每一個(gè)子文件都是一個(gè)ZipEntry對(duì)象。

壓縮文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
 
public class ZipOutputStreamTest {
 
 public static void main(String args[]) throws IOException {
 test1();
 test2();
 }
 
 public static void test1() throws IOException {
 ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("D:\\testZip.zip"), Charset.forName("GBK"));
 //實(shí)例化一個(gè)名稱為ab.txt的ZipEntry對(duì)象
 ZipEntry entry = new ZipEntry("ab.txt");
 //設(shè)置注釋
 zos.setComment("zip測(cè)試for單個(gè)文件");
 //把生成的ZipEntry對(duì)象加入到壓縮文件中,而之后往壓縮文件中寫入的內(nèi)容都會(huì)放在這個(gè)ZipEntry對(duì)象里面
 zos.putNextEntry(entry);
 InputStream is = new FileInputStream("D:\\ab.txt");
 int len = 0;
 while ((len = is.read()) != -1)
  zos.write(len);
 is.close();
 zos.close();
 }
 
 public static void test2() throws IOException {
 File inFile = new File("D:\\test");
 ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("D:\\test.zip"), Charset.forName("GBK"));
 zos.setComment("多文件處理");
 zipFile(inFile, zos, "");
 zos.close();
 }
 
 public static void zipFile(File inFile, ZipOutputStream zos, String dir) throws IOException {
 if (inFile.isDirectory()) {
  File[] files = inFile.listFiles();
  for (File file:files)
  zipFile(file, zos, dir + "\\" + inFile.getName());
 } else {
  String entryName = null;
  if (!"".equals(dir))
  entryName = dir + "\\" + inFile.getName();
  else
  entryName = inFile.getName();
  ZipEntry entry = new ZipEntry(entryName);
  zos.putNextEntry(entry);
  InputStream is = new FileInputStream(inFile);
  int len = 0;
  while ((len = is.read()) != -1)
  zos.write(len);
  is.close();
 }
 
 }
 
}

解壓縮文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
 
public class ZipInputStreamTest {
 
 public static void main(String args[]) throws IOException {
 File file = new File("D:\\test.zip");//壓縮文件
 ZipFile zipFile = new ZipFile(file);//實(shí)例化ZipFile,每一個(gè)zip壓縮文件都可以表示為一個(gè)ZipFile
 //實(shí)例化一個(gè)Zip壓縮文件的ZipInputStream對(duì)象,可以利用該類的getNextEntry()方法依次拿到每一個(gè)ZipEntry對(duì)象
 ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file), Charset.forName("GBK"));
 ZipEntry zipEntry = null;
 while ((zipEntry = zipInputStream.getNextEntry()) != null) {
  String fileName = zipEntry.getName();
  File temp = new File("D:\\unpackTest\\" + fileName);
  if (! temp.getParentFile().exists())
  temp.getParentFile().mkdirs();
  OutputStream os = new FileOutputStream(temp);
  //通過(guò)ZipFile的getInputStream方法拿到具體的ZipEntry的輸入流
  InputStream is = zipFile.getInputStream(zipEntry);
  int len = 0;
  while ((len = is.read()) != -1)
  os.write(len);
  os.close();
  is.close();
 }
 zipInputStream.close();
 }
 
}

 

以上就是對(duì)Java 壓縮和解壓縮文件的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!

延伸 · 閱讀

精彩推薦
339
主站蜘蛛池模板: 久久综合久久综合久久综合 | 久久久久久99 | 97色婷婷成人综合在线观看 | 日韩免费看 | 欧美日韩国产一区二区三区不卡 | 国产欧美在线观看 | www.中文字幕.com | 男女视频网址 | 亚洲视频一区二区 | 国产精品美女久久久久高潮 | 日韩中文字幕一区二区三区 | wwwav在线| 成人黄色小视频 | 亚洲欧美一级久久精品国产特黄 | 亚洲精品综合中文字幕 | 日韩午夜电影 | 在线成人av| 日韩成人在线网 | 福利在线播放 | 中文字幕av一区二区三区 | 亚洲男人在线 | 亚洲成人免费在线播放 | 中文字幕精品一区二区精品 | 在线观看国产成人av片 | 亚洲视频一区二区在线观看 | 一区二区三区回区在观看免费视频 | 成人国产免费视频 | 日韩小视频在线观看 | av天天干 | 国产成人精品一区二区 | 天天综合网网欲色 | 国产色| 夜夜骑av | 国产中文字幕在线播放 | 国产综合免费视频 | 免费av在线播放 | 久久精品国产一区二区三区不卡 | 亚洲字幕网 | 日韩精品毛片免费看 | 日韩在线中文字幕 | 亚洲国产高清美女在线观看 |