当前位置:首页 > 免费毕业设计

【毕业设计】JAVA文件压缩与解压缩实践(源代码+论文)

【毕业设计】JAVA文件压缩与解压缩实践(源代码+论文)

  • 网站价格: 10
  • 特殊技术: 动态语言
  • 作品类型: 计算机毕业设计论文
  • 售后服务:

联系方式: 微信:biyebang QQ: 629001810

作品详情

 随着人们对数据的大量需求以及计算机使用时间的增加,计算机磁盘上的文件越来越大,越来越多。如何让有限的磁盘空间容纳更多的数据成为需要解决的问题。一方面,高速发展的存储技术以提高磁盘容量来解决这样的需求,但随着网络环境下数据传递的产生以及带宽的限制,大容量数据问题日益突出。在这两种需求的推动下,对数据压缩的需求产生了。人们可以将文件在不改变其本身的条件下,将其以更小的占用空间存储,并且在需要的时候将文件恢复成原有的样子,这就是压缩目的。文主要研究文件的无损压缩技术,并简要介绍了文件压缩的分类、几种常用的无损压缩格式和常用的压缩算法。运用LZ77字典算法、懒惰匹配算法和Huffman编码算法,使用Java语言在Jbuilder2006环境下设计了使用GZIP算法对文件压缩与解压缩的实现程序。用户可以根据自己的需求,使用此程序方便地对文件进行压缩或者解压缩操作

 

文件的压缩与解压缩,要能方便地进行,要完成的功能包括压缩功能,解压缩功能,选择文件路径,选择操作方案,选择新文件保存路径此程序还要在压缩成功后显示被压缩文件的大小,并对非法操作给出提示。

用户可以选择文件进行压缩或解压缩操作,并选择生成保存路径,默认的保存路径为原文件目录,压缩的生成文件以原文件加.gzip后缀命名,在解压缩操作中,若输入文件不是gzip格式的压缩文件,则提示gzip文件格式不对。

程序的基本设计原则有:方便性原则、功能实用性原则和开放性原则等。程序设计时采用较好的压缩技术,能保证文件压缩的压缩比和可恢复性,确保程序有较长的生命周期。

本程序的总体目标是实现文件压缩与解压缩的便捷操作,因此需要有便捷的操作界面。

1.png

4.1 程序界面设计

 

为了让用户能便捷地进行压缩与解压缩的操作,还要对程序加入一个可视化界面。其外观如图9

 

用户首先选择需要操作的文件,若要将被操作文件的生成文件保存到原文件所在目录,可以跳过选择输出文件夹操作。如图10:

在选择好文件以后,用户根据自己的需要,点击压缩或者解压按钮,操作便完成。

其部分代码如下:

public class gzipJFrame extends javax.swing.JFrame implements  ActionListener  {

File file=null;

File dir=null;

private JToggleButton jToggleButton1;

private JMenu jMenu1;

private JMenuItem jMenuItem1;

private JLabel jLabel2;

private JLabel jLabel1;

private JMenuItem jMenuItem2;

private JMenuBar jMenuBar1;

private JToggleButton jToggleButton2;

private  static final String initstate="请先选择文件";

JFileChooser chooserfile=new JFileChooser();

JFileChooser chooserDir=new JFileChooser();

private JMenuItem jMenuItem3;

/**

* Auto-generated main method to display this JFrame

*/

public static void main(String[] args) {

gzipJFrame inst = new gzipJFrame();

inst.setVisible(true);

}

 

public gzipJFrame() {

super();

initGUI();

}

 

private void initGUI() {

try {

this.setTitle("gzip压缩与解压缩");

this.setLocation(280,240);

AnchorLayout thisLayout = new AnchorLayout();

getContentPane().setLayout(thisLayout);

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

{

jLabel2 = new JLabel();

getContentPane().add(jLabel2, new AnchorConstraint(775, 995, 953, 22, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));

jLabel2.setPreferredSize(new java.awt.Dimension(322, 21));

}

{

jLabel1 = new JLabel();

jLabel1.setText(initstate);

getContentPane().add(jLabel1, new AnchorConstraint(182, 910, 419, 64, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));

jLabel1.setPreferredSize(new java.awt.Dimension(280, 28));

}

{

jMenuBar1 = new JMenuBar();

setJMenuBar(jMenuBar1);

jMenuBar1.setPreferredSize(new java.awt.Dimension(331, 19));

{

jMenu1 = new JMenu();

jMenuBar1.add(jMenu1);

jMenu1.setText("文件");

{

jMenuItem1 = new JMenuItem();

jMenu1.add(jMenuItem1);

jMenuItem1.setText("打开");

jMenuItem1.addActionListener(this);

}

{

jMenuItem3 = new JMenuItem();

jMenu1.add(jMenuItem3);

jMenuItem3.setText("\u8f93\u51fa\u6587\u4ef6\u5939");

jMenuItem3.addActionListener(this);

}

{

jMenuItem2 = new JMenuItem();

jMenu1.add(jMenuItem2);

jMenuItem2.setText("退出");

jMenuItem2.addActionListener(this);

}

}

}

{

jToggleButton2 = new JToggleButton();

getContentPane().add(jToggleButton2, new AnchorConstraint(538, 720, 716, 530, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));

jToggleButton2.setText("\u89e3\u538b");

jToggleButton2.setPreferredSize(new java.awt.Dimension(63, 21));

jToggleButton2.addActionListener(this);

}

帮我毕业网微信

版权所有© 帮我毕业网 并保留所有权利

QQ 1370405256 微信 biyebang

QQ:629001810微信:biyebang

收缩