File Input Output Java

import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class ZipFileViewer extends JFrame {
  private JTable m_zipTable;
  private ZipTableModel m_zipTableModel;
  public ZipFileViewer(String zipFile, List zipEntries) {
    m_zipTableModel = new ZipTableModel(zipEntries);
    m_zipTable = new JTable(m_zipTableModel);
    JScrollPane scrollPane = new JScrollPane(m_zipTable);
    m_zipTable.setShowVerticalLines(true);
    m_zipTable.setShowHorizontalLines(false);
    getContentPane().add(scrollPane);
    setSize(800, 400);
    setVisible(true);
  }
  public static void main(String[] arg) throws Exception {
    String zipFileName = arg[0];
    List zipFileList = null;
    ZipFile zipFile = new ZipFile(zipFileName);
    Enumeration zipEntries = zipFile.entries();
    zipFileList = new ArrayList();
    while (zipEntries.hasMoreElements()) {
      zipFileList.add((ZipEntry) (zipEntries.nextElement()));
    }
    ZipFileViewer zipFileViewer = new ZipFileViewer(zipFileName, zipFileList);
  }
}
class ZipTableModel extends AbstractTableModel {
  public static final int NAME = 0;
  public static final int SIZE = 1;
  public static final int COMP_SIZE = 2;
  public static final int TYPE = 3;
  public static final int LAST_MODI = 4;
  public String[] m_colNames = { "File Name", "Size", "Compressed Size", "Type", "Last Modified" };
  private List m_zipEntries;
  public ZipTableModel(List zipEntries) {
    super();
    m_zipEntries = zipEntries;
  }
  public int getColumnCount() {
    return m_colNames.length;
  }
  public int getRowCount() {
    return m_zipEntries.size();
  }
  public String getColumnName(int col) {
    return m_colNames[col];
  }
  public Object getValueAt(int row, int col) {
    ZipEntry zipEntry = (ZipEntry) (m_zipEntries.get(row));
    switch (col) {
    case NAME:
      return zipEntry.getName();
    case SIZE:
      if (zipEntry.isDirectory()) {
        return "";
      } else {
        return String.valueOf(zipEntry.getSize() / 1000) + " KB";
      }
    case COMP_SIZE:
      if (zipEntry.isDirectory()) {
        return "";
      } else {
        return String.valueOf(zipEntry.getCompressedSize() / 1000) + " KB";
      }
    case TYPE:
      if (zipEntry.isDirectory()) {
        return "Directory";
      } else {
        return "File";
      }
    case LAST_MODI:
      return String.valueOf(new Date(zipEntry.getTime()));
    }
    return new String();
  }
}