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

📄 testzip.java

📁 本java源程序包括了大量的学习程序(共27章)方便大家学习
💻 JAVA
字号:
import java.util.zip.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Math;
import java.io.*;

public class TestZip extends Frame implements ActionListener
{
  TextArea textarea; //显示数据文件的多行文本显示域
  TextField infotip; //显示数据文件未压缩大小及压缩大小单行文本显示域
  String doc; //存储随机生成的数据
  long doczipsize = 0;//压缩数据文件的大小
  public TestZip()
  {
    MenuBar menubar = new MenuBar(); //生成菜单
    setMenuBar(menubar);
    Menu file = new Menu("File",true);
    menubar.add(file);
    MenuItem neww= new MenuItem("New");
    neww.addActionListener(this);
    file.add(neww);
    MenuItem open=new MenuItem("Open");
    open.addActionListener(this);
    file.add(open);
    MenuItem save = new MenuItem("Save");
    save.addActionListener(this);
    file.add(save);
    MenuItem exit=new MenuItem("Exit");
    exit.addActionListener(this);
    file.add(exit);   //随机生成的数据文件的多行文本显示域
    add("Center",textarea = new TextArea()); //提示文本原始大小、压缩大小的单行文本显示域
    add("South",infotip = new TextField());
  }
  public static void main(String args[])
  {
    TestZip ok=new TestZip();
    ok.setTitle("zip sample");
    ok.setSize(600,300);
    ok.show();
  }
  private void randomData()   //随机生成50个double数据,并放在doc字符串变量中。
  {
    doc="";
    for(int i=1;i<51;i++)
    {
      double rdm = Math.random() * 10;
      doc=doc+new Double(rdm).toString()+"\n";
    }
    doczipsize = 0;
    showTextandInfo();
  }
  private void openFile()   //打开zip文件,将文件内容读入doc字符串变量中。
  {
    FileDialog dlg=new FileDialog(this,"Open",FileDialog.LOAD);
    dlg.setVisible(true);
    File filename=new File(dlg.getDirectory(),dlg.getFile());
    try                     //创建一个文件实例
    {
      if(!filename.exists()) return;   //文件不存在,则返回
      ZipInputStream zipis=new ZipInputStream(new FileInputStream(filename)); //用文件输入流构建ZIP压缩输入流
      zipis.getNextEntry();     //将输入流定位在当前entry数据项位置
      DataInputStream dis=new DataInputStream(zipis);   //用ZIP输入流构建DataInputStream
      doc = dis.readUTF();      //读取文件内容
      dis.close();              //关闭文件
      doczipsize = filename.length();  //获取ZIP文件长度
      showTextandInfo();        //显示数据
    }
    catch(IOException ioe){ System.out.println(ioe); }
  }
  private void saveFile()        //打开zip文件,将doc字符串变量写入zip文件中。
  {
    FileDialog dlg=new FileDialog(this,"Save",FileDialog.SAVE);
    dlg.setVisible(true);
    File filename=new File(dlg.getDirectory(),dlg.getFile());
    try                        //创建一个文件实例
    {
      if(!filename.exists()) filename.createNewFile();         //创建新的文件
      ZipOutputStream zipos=new ZipOutputStream(new FileOutputStream(filename)); //用文件输出流构建ZIP压缩输出流
      zipos.setMethod(ZipOutputStream.DEFLATED);//设置压缩方法
      zipos.putNextEntry(new ZipEntry("zip")); //生成一个ZIP entry,写入文件输出流中,并将输出流定位于entry起始处。
      DataOutputStream os=new DataOutputStream(zipos); //用ZIP输出流构建DataOutputStream;
      os.writeUTF(doc); //将随机生成的数据写入文件中
      os.close();//关闭数据流
      doczipsize = filename.length();  //获取压缩文件的长度
      showTextandInfo(); //显示数据
    }
    catch(IOException ioe){ System.out.println(ioe); }
  }
  private void showTextandInfo()      //显示数据文件和压缩信息
  {
    textarea.replaceRange(doc,0,textarea.getText().length());
    infotip.setText("uncompressed size: "+doc.length()+"compressed size: "+doczipsize);
  }
  public void actionPerformed(ActionEvent e)
  {
    String arg = e.getActionCommand();
    if ("New".equals(arg)) randomData();
    else if ("Open".equals(arg)) openFile();
    else if ("Save".equals(arg)) saveFile();
    else if ("Exit".equals(arg))
    {
      dispose();          //关闭窗口
      System.exit(0);     //关闭程序
    }
    else { System.out.println("no this command!");}
  }
}

⌨️ 快捷键说明

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