Java核心技术II:ZiP压缩文档
来源:互联网 发布:相片水印软件 编辑:程序博客网 时间:2024/06/05 17:51
这个程序可以让我们打开一个zip文件,在屏幕底部有一个组合框显示了zip文件中的文件,如果选中其中一个,那么这个文件的内容就会显示在文本域中。
import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.MenuBar;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileInputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;import java.util.List;import java.util.Scanner;import javax.swing.JComboBox;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.SwingWorker;/** * * @author Administrator *新浪微博:ouc大飞 */public class ZipTest { public static void main(String[] args) { // TODO Auto-generated method stub EventQueue.invokeLater(new Runnable() { @Override public void run() { // TODO Auto-generated method stub ZipTestFrame frame=new ZipTestFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocation(300,400); frame.setVisible(true); } }); }}class ZipTestFrame extends JFrame{ public ZipTestFrame(){ setTitle("ZipTest"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); JMenuBar bar=new JMenuBar(); JMenu menu=new JMenu("file"); JMenuItem item=new JMenuItem("open"); menu.add(item); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub JFileChooser chooser=new JFileChooser(); chooser.setCurrentDirectory(new File("D:\\")); int r=chooser.showOpenDialog(ZipTestFrame.this); if (r==JFileChooser.APPROVE_OPTION) { zipname=chooser.getSelectedFile().getPath(); fileCombo.removeAllItems(); scanZipFile(); } } }); JMenuItem exitItem=new JMenuItem("exit"); menu.add(exitItem); exitItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.exit(0); } }); bar.add(menu); setJMenuBar(bar); fileText=new JTextArea(); fileCombo=new JComboBox<>(); fileCombo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub loadZipFile((String)fileCombo.getSelectedItem()); } }); add(fileCombo,BorderLayout.SOUTH); add(new JScrollPane(fileText),BorderLayout.CENTER); } public void scanZipFile(){ new SwingWorker<Void, String>(){ @Override protected Void doInBackground() throws Exception { // TODO Auto-generated method stub ZipInputStream zin=new ZipInputStream(new FileInputStream(zipname)); ZipEntry entry; while ((entry=zin.getNextEntry())!=null) { publish(entry.getName()); zin.closeEntry(); } zin.close(); return null; } protected void process(List<String> names){ for(String name:names) fileCombo.addItem(name); } }.execute(); } public void loadZipFile(final String name){ fileCombo.setEnabled(false); fileText.setText(""); new SwingWorker<Void, Void>(){ @Override protected Void doInBackground() throws Exception { // TODO Auto-generated method stub try { ZipInputStream zin=new ZipInputStream(new FileInputStream(zipname)); ZipEntry entry; while ((entry=zin.getNextEntry())!=null) { if (entry.getName().equals(name)) { Scanner in=new Scanner(zin); while (in.hasNextLine()) { fileText.append(in.nextLine()); fileText.append("\n"); } } zin.closeEntry(); } zin.close(); } catch (Exception e) { // TODO: handle exception } return null; } public void done(){ fileCombo.setEnabled(true); } }.execute(); } public static final int DEFAULT_WIDTH=400; public static final int DEFAULT_HEIGHT=300; private String zipname; private JComboBox fileCombo; private JTextArea fileText;}
0 0
- Java核心技术II:ZiP压缩文档
- java Zip 压缩文档
- Java核心技术II:解析XML文档
- java 解压缩zip 压缩zip
- Java Zip压缩
- java 压缩zip
- JAVA zip 压缩
- Java压缩zip文件
- java zip压缩
- JAVA zip压缩
- JAVA压缩/解压ZIP
- java zip压缩
- Java压缩/解压ZIP
- java zip压缩解压
- java zip压缩。解压缩
- java zip压缩
- java实现zip压缩
- java 实现zip压缩
- 手机收不到第三方发送的短信及验证码
- 【Android 屏幕扩展/共享】5分钟搞定—电脑 与 手机共享屏幕
- 文档编写要求
- APP安全报告第六期:用户病例信息存在泄漏风险,医疗APP需加强安全措施!
- 用C语言实现将int类型转化为字符串,不使用已有的转换函数
- Java核心技术II:ZiP压缩文档
- PHP 轻量级的PHP类检测移动设备(包括平板电脑)。
- AJAX
- 9、uboot移植——使用官方uboot进行移植(1)
- 一句话的解密
- mapreduce 原理
- 内网中远程重启服务器
- JVM 调优
- 借助node实战WebSocket