Java压缩/解压文件的实现代码

2025-05-29 0 88

用java压缩/解压文件:

?

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

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92
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("从压缩包中提取文件"); //调用父类构造函数

fileChooser=new JFileChooser(); //实例化组件

jtfTarget=new JTextField(13);

jbSelected=new JButton("选择");

jbExtract=new JButton("解压");

files=new JList();

JPanel panel=new JPanel(); //实例化面板

panel.add(new JLabel("目标文件"));

panel.add(jtfTarget); //增加组件到面板上

panel.add(jbSelected);

panel.add(jbExtract);

JScrollPane jsp=new JScrollPane(files);

jsp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); //设置边界

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); //设置目标文件名

showFiles(); //显示压缩包内容

}

}

});

jbExtract.addActionListener(new ActionListener(){ //解村文件按钮事件处理

public void actionPerformed(ActionEvent event) {

extractFile(files.getSelectedValue().toString()); //解压指定文件

}

});

setSize(350,250); //设置窗口尺寸

setVisible(true); //设置窗口可视

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序

}

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内

}

files.setListData(vec); //设置文件列表框数据

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]; //缓冲区大小

int length;

while((length = in.read(buffer)) != -1) { //循环读取数据

out.write(buffer, 0, length); //写数据到输出流

}

JOptionPane.showMessageDialog(ZipExtractDemo.this,"解压成功,解压到:"+file.getAbsolutePath());

in.close(); //关闭输入流

out.close(); //关闭输出流

} catch (Exception ex){}

}

public static void main(String[] args){

new ZipExtractDemo();

}

}

总结

以上所述是小编给大家介绍的Java压缩/解压文件的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:http://blog.csdn.net/qq_39045774/article/details/78052183

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java压缩/解压文件的实现代码 https://www.kuaiidc.com/114746.html

相关文章

发表评论
暂无评论