当前位置: 代码迷 >> J2SE >> ZipInputStream报java.lang.IllegalArgumentException,该怎么处理
  详细解决方案

ZipInputStream报java.lang.IllegalArgumentException,该怎么处理

热度:87   发布时间:2016-04-24 12:20:39.0
ZipInputStream报java.lang.IllegalArgumentException
Java code
package com.hss.chap13;import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Scanner;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;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;public class Chap13_03 {    /**     * @param args     */    public static void main(String[] args) {            EventQueue.invokeLater(new Runnable(){            public void run() {                ZipFrame zf = new ZipFrame();                zf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                zf.setVisible(true);            }                    });    }}class ZipFrame extends JFrame{        public ZipFrame(){        this.setBounds(200, 200, 500, 400);        this.setLayout(new BorderLayout());        //工具栏布局        JMenuBar jmb = new JMenuBar();        JMenu jm = new JMenu("file");        JMenuItem jmi1 = new JMenuItem("open");        JMenuItem jmi2 = new JMenuItem("exit");        jm.add(jmi1);        jm.add(jmi2);        jmb.add(jm);        this.setJMenuBar(jmb);                //添加处理事件        jmi1.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e) {                JFileChooser jfc = new JFileChooser();                jfc.setCurrentDirectory(new File("."));                int r = jfc.showOpenDialog(ZipFrame.this);                if(r==JFileChooser.APPROVE_OPTION){                    zipname=jfc.getSelectedFile().getPath();                    try {                        scannerFile();                    } catch (IOException e1) {                        e1.printStackTrace();                    }                }            }                                });        jmi2.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e) {                System.exit(0);            }        });                //添加textarea        jta = new JTextArea();        jsc = new JScrollPane(jta);        //添加combobox        fileCombo = new JComboBox();        fileCombo.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e) {                try {                    loadFile((String)fileCombo.getSelectedItem());                } catch (Exception e1) {                    e1.printStackTrace();                }            }                    });                this.add(jsc,BorderLayout.CENTER);        this.add(fileCombo,BorderLayout.SOUTH);    }        public void scannerFile() throws IOException{        //先将combox清空        fileCombo.removeAllItems();        ZipInputStream zis = new ZipInputStream(new FileInputStream(zipname));        ZipEntry ze ;         while((ze=zis.getNextEntry())!=null){            fileCombo.addItem(ze.getName());            zis.closeEntry();        }        zis.close();    }        public void loadFile(String filename) throws Exception{        //先将显示区域清空        jta.setText("");        ZipInputStream zis = new ZipInputStream(new FileInputStream(zipname));        ZipEntry ze;        while((ze=zis.getNextEntry())!=null){            System.out.println(ze.getName()+"---"+filename);            if(ze.getName().equals(filename)){                Scanner in = new Scanner(zis);                while(in.hasNextLine()){                    String s = in.nextLine();                    jta.append(s);                    jta.append("\n");                }            }            zis.closeEntry();        }        zis.close();            }        private String zipname;    private JTextArea jta;    private JScrollPane jsc;    private JComboBox fileCombo;    }
  相关解决方案