欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java壓縮/解壓文件的實現(xiàn)代碼

 更新時間:2017年09月21日 15:35:34   作者:左岸流華  
本文通過實例代碼給大家分享了Java壓縮/解壓文件的方法,需要的朋友參考下吧

用java壓縮/解壓文件: 

import java.io.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
import java.util.zip.*; 
import javax.swing.*; 
//從壓縮包中提取文件 
public class ZipExtractDemo extends JFrame{ 
  JFileChooser fileChooser; //文件選擇器 
  JTextField jtfTarget; //待解壓文件路徑 
  JButton jbSelected; //選擇文件按鈕 
  JList files; //信息顯示列表框 
  JButton jbExtract; //解壓按鈕 
  ZipFile zFile;  
  public ZipExtractDemo(){ 
    super("從壓縮包中提取文件"); //調(diào)用父類構(gòu)造函數(shù) 
    fileChooser=new JFileChooser(); //實例化組件 
    jtfTarget=new JTextField(13); 
    jbSelected=new JButton("選擇"); 
    jbExtract=new JButton("解壓"); 
    files=new JList(); 
    JPanel panel=new JPanel(); //實例化面板 
    panel.add(new JLabel("目標(biāo)文件")); 
    panel.add(jtfTarget); //增加組件到面板上 
    panel.add(jbSelected); 
    panel.add(jbExtract); 
    JScrollPane jsp=new JScrollPane(files); 
    jsp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); //設(shè)置邊界 
    Container container=getContentPane(); //得以容器 
    container.add(panel,BorderLayout.NORTH); //增加組件到容器上 
    container.add(jsp,BorderLayout.CENTER); 
    jbSelected.addActionListener(new ActionListener(){ //文件選擇按鈕事件處理 
      public void actionPerformed(ActionEvent event) { 
        if (fileChooser.showOpenDialog(ZipExtractDemo.this)==JFileChooser.APPROVE_OPTION){ //彈出文件選擇器,并判斷是否點擊了打開按鈕 
          String fileName=fileChooser.getSelectedFile().getAbsolutePath();  //得到選擇文件的絕對路徑 
          jtfTarget.setText(fileName); //設(shè)置目標(biāo)文件名 
          showFiles(); //顯示壓縮包內(nèi)容 
      } 
      } 
    }); 
    jbExtract.addActionListener(new ActionListener(){  //解村文件按鈕事件處理 
      public void actionPerformed(ActionEvent event) {  
          extractFile(files.getSelectedValue().toString()); //解壓指定文件 
      } 
    }); 
    setSize(350,250);  //設(shè)置窗口尺寸 
    setVisible(true);  //設(shè)置窗口可視 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時退出程序 
  } 
  public void showFiles(){ 
    try{ 
    zFile=new ZipFile(jtfTarget.getText()); //得到壓縮文件實例 
    ZipEntry entry; 
    Vector vec=new Vector(); //文件枚舉 
      Enumeration enu=zFile.entries(); //得到壓縮條目的枚舉對象 
      while (enu.hasMoreElements()){ //依次枚舉條目 
        entry=(ZipEntry) enu.nextElement(); //得到壓縮條目 
        vec.add(entry.getName());  //增加文件到Vector內(nèi)    
      } 
      files.setListData(vec); //設(shè)置文件列表框數(shù)據(jù) 
      files.getSelectedValues(); 
    } 
    catch (Exception ex){ 
      ex.printStackTrace(); //輸出錯誤信息 
    }     
  } 
  public void extractFile(String name){ //解壓文件 
    try{ 
    ZipEntry entry=zFile.getEntry(name);  
    entry.getComment(); 
    entry.getCompressedSize(); 
    entry.getCrc(); 
    entry.isDirectory(); 
    entry.getSize(); 
    entry.getMethod(); 
    InputStream in=zFile.getInputStream(entry); //得到文件輸入流 
    File file=new File(name); //實例化文件對象 
    FileOutputStream out=new FileOutputStream(file); //得到文件輸出流 
    byte[] buffer=new byte[1024]; //緩沖區(qū)大小 
    int length; 
    while((length = in.read(buffer)) != -1) { //循環(huán)讀取數(shù)據(jù) 
      out.write(buffer, 0, length); //寫數(shù)據(jù)到輸出流 
    } 
      JOptionPane.showMessageDialog(ZipExtractDemo.this,"解壓成功,解壓到:"+file.getAbsolutePath());  
    in.close(); //關(guān)閉輸入流 
    out.close(); //關(guān)閉輸出流   
    } catch (Exception ex){} 
  } 
  public static void main(String[] args){ 
    new ZipExtractDemo(); 
  } 
} 

總結(jié)

以上所述是小編給大家介紹的Java壓縮/解壓文件的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java中通過反射實現(xiàn)代理Proxy代碼實例

    Java中通過反射實現(xiàn)代理Proxy代碼實例

    這篇文章主要介紹了Java中通過反射實現(xiàn)代理Proxy代碼實例,java實現(xiàn)代理可以通過java.lang.reflect.Proxy接口結(jié)合java.lang.reflect.InvocationHandler來實現(xiàn),需要的朋友可以參考下
    2023-08-08
  • @RequestBody 部分屬性沒有轉(zhuǎn)化成功的處理

    @RequestBody 部分屬性沒有轉(zhuǎn)化成功的處理

    這篇文章主要介紹了@RequestBody 部分屬性沒有轉(zhuǎn)化成功的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng)

    java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 詳解Java字節(jié)碼編程之非常好用的javassist

    詳解Java字節(jié)碼編程之非常好用的javassist

    這篇文章主要介紹了詳解Java字節(jié)碼編程之非常好用的javassist,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java中this的用法實例總結(jié)

    Java中this的用法實例總結(jié)

    JAVA中的this是一個非常重要的模塊,在編程中有非常重要的地位,擅長用this的人常??梢允钩绦蚋雍啙嵑头奖?下面這篇文章主要給大家介紹了關(guān)于Java中this用法的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • java?long?類型數(shù)據(jù)的賦值方式

    java?long?類型數(shù)據(jù)的賦值方式

    這篇文章主要介紹了java?long?類型數(shù)據(jù)的賦值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • java的main方法中調(diào)用spring的service方式

    java的main方法中調(diào)用spring的service方式

    這篇文章主要介紹了在java的main方法中調(diào)用spring的service方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 初識JAVA數(shù)組

    初識JAVA數(shù)組

    java語言中,數(shù)組是一種最簡單的復(fù)合數(shù)據(jù)類型。數(shù)組是有序數(shù)據(jù)的集合,數(shù)組中的每個元素具有相同的數(shù)據(jù)類型,可以用一個統(tǒng)一的數(shù)組名和下標(biāo)來唯一地確定數(shù)組中的元素。數(shù)組有一維數(shù)組和多維數(shù)組。
    2014-08-08
  • java實現(xiàn)堆排序以及時間復(fù)雜度的分析

    java實現(xiàn)堆排序以及時間復(fù)雜度的分析

    本文主要介紹了java實現(xiàn)堆排序以及時間復(fù)雜度,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Springboot使用cache緩存過程代碼實例

    Springboot使用cache緩存過程代碼實例

    這篇文章主要介紹了Springboot使用cache緩存過程代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06

最新評論