⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ziptest.java

📁 Java2核心技术卷一 配套源码,看了还不错
💻 JAVA
字号:
/**
 * @version 1.20 17 Aug 1998
 * @author Cay Horstmann
 */

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.util.zip.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;

public class ZipTest extends JFrame
   implements ActionListener
{  public ZipTest()
   {  setTitle("ZipTest");
      setSize(300, 400);

      JMenuBar mbar = new JMenuBar();
      JMenu m = new JMenu("File");
      openItem = new JMenuItem("Open");
      openItem.addActionListener(this);
      m.add(openItem);
      exitItem = new JMenuItem("Exit");
      exitItem.addActionListener(this);
      m.add(exitItem);
      mbar.add(m);

      fileList.addActionListener(this);

      Container contentPane = getContentPane();
      contentPane.add(mbar, "North");
      contentPane.add(fileList, "South");
      contentPane.add(fileText, "Center");
   }

   public void actionPerformed(ActionEvent evt)
   {  Object source = evt.getSource();
      if (source == openItem)
      {  JFileChooser chooser = new JFileChooser();
         chooser.setCurrentDirectory(new File("."));
         chooser.setFileFilter(new FileFilter()
            {  public boolean accept(File f)
               {  return f.getName().toLowerCase()
                     .endsWith(".zip")
                     || f.isDirectory();
               }
               public String getDescription()
               { return "ZIP Files"; }
            });
         int r = chooser.showOpenDialog(this);
         if (r == JFileChooser.APPROVE_OPTION)
         {  zipname = chooser.getSelectedFile().getPath();
            scanZipFile();
         }
      }
      else if (source == exitItem) System.exit(0);
      else if (source == fileList)
         loadZipFile((String)fileList.getSelectedItem());
   }

   public void scanZipFile()
   {  fileList.removeAllItems();
      try
      {  ZipInputStream zin = new ZipInputStream(new
            FileInputStream(zipname));
         ZipEntry entry;
         while ((entry = zin.getNextEntry()) != null)
         {  fileList.addItem(entry.getName());
            zin.closeEntry();
         }
         zin.close();
      }
      catch(IOException e) {}
   }

   public void loadZipFile(String name)
   {  try
      {  ZipInputStream zin = new ZipInputStream(new
            FileInputStream(zipname));
         ZipEntry entry;
         fileText.setText("");
         while ((entry = zin.getNextEntry()) != null)
         {  if (entry.getName().equals(name))
            {  BufferedReader in = new BufferedReader(new
                  InputStreamReader(zin));
               String s;
               while ((s = in.readLine()) != null)
                  fileText.append(s + "\n");
            }
            zin.closeEntry();
         }
         zin.close();
      }
      catch(IOException e) {}
   }

   public static void main(String[] args)
   {  Frame f = new ZipTest();
      f.show();
   }

   private JComboBox fileList = new JComboBox();
   private JTextArea fileText = new JTextArea();
   private JMenuItem openItem;
   private JMenuItem exitItem;
   private String zipname;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -