文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java和.NET的GZIP压缩功能实例分析

2023-06-17 06:06

关注

本篇内容介绍了“Java和.NET的GZIP压缩功能实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

代码解析

1)Java GZIPOutputStream类

该GZIPOutputStream类为压缩数据在GZIP格式文件中创建了输入流。这个类有以下几种的构造函数:

创建具有默认大小的输出流:

GZIPOutputStream(OutputStream out);

创建新的具有默认缓冲区大小和指定刷新模式的输出流:

GZIPOutputStream(OutputStream out,boolean syncFlush);

创建新的具有指定缓冲区大小的输出流:

GZIPOutputStream(OutputStream out,int size);

创建新的具有指定的缓冲区大小和刷新模式的输出流:

GZIPOutputStream(OutputStream out,int size,boolean syncFlush);

我们需要编写以下代码来压缩文件:

import java.io.*; import java.util.zip.*;  class abc{  public static void main(String args[])   {    String srcfile="D:/abhi.txt";          String dstfile="D:/abhi1.txt";    try{     FileInputStream fin= new FileInputStream(srcfile);        GZIPOutputStream fout=new GZIPOutputStream(new FileOutputStream(dstfile));               byte[] buffer = new byte[1024];              int bytesRead;               while ((bytesRead = fin.read(buffer)) != -1) //srcfile.getBytes()              {                fout.write(buffer, 0, bytesRead);              }                 fin.close();                   fout.close();                       File file =new File(srcfile);                    System.out.println("Before Compression file Size :                     " + file.length()+" Bytes");                      File file1 =new File(dstfile);                      System.out.println("After Compression file Size :                       " + file1.length()+" Bytes");    }catch(Exception ex)     {   System.out.println(ex);     }    }  }

运行代码。输出如下,因为我提供的源文件只有481个字节大小,然后经过压缩后输出的文件大小为207个字节。

Java和.NET的GZIP压缩功能实例分析

现在,我们用相同的输入文件来看看GZIP压缩后的效果。

2).NET GZipStream类

GZipStream压缩string或文件。它可以让你有效地保存数据,如压缩日志文件,消息文件。这个类存在于System.IO.Compression的命名空间。它创建GZIP文件,并将其写入磁盘。

GZipStream类提供以下构造函数:

通过使用指定字节流和压缩等级初始化GZipStream类的新实例:

GZipStream(Stream, CompressionLevel)

通过使用指定流和压缩模式初始化GZipStream类的新实例:

GZipStream(Stream, CompressionMode)

通过使用指定流和压缩等级初始化GZipStream类的新实例,并可选是否打开流:

GZipStream(Stream, CompressionLevel, Boolean)

通过使用指定流和压缩模式初始化GZipStream类的新实例,并可选是否打开流:

GZipStream(Stream, CompressionMode, Boolean)

我们需要编写以下代码来压缩文件:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.IO.Compression;  namespace Compress {     class Program     {         static void Main(string[] args)         {             string srcfile = "D:\\abhi.txt";             string dstfile = "D:\\abhi2.txt";              byte[] b;              using (FileStream f = new FileStream(srcfile, FileMode.Open))             {                 b = new byte[f.Length];                 f.Read(b, 0, (int)f.Length);             }              using (FileStream fs = new FileStream(dstfile, FileMode.Create))              using (GZipStream gzip = new GZipStream(fs, CompressionMode.Compress, false))             {                 gzip.Write(b, 0, b.Length);             }              FileInfo f2 = new FileInfo(srcfile);             System.Console.WriteLine("Size Of File Before Compression :"+f2.Length);              FileInfo f1 = new FileInfo(dstfile);             System.Console.WriteLine("Size Of File Before Compression :" + f1.Length);         } }

运行代码。输出如下,由于我提供的是481字节大小的源文件,然后压缩后的输出文件大小为353个字节。

Java和.NET的GZIP压缩功能实例分析

大家可以看到,源文件为481字节,压缩文件大小为:

  1. .NET的GzipStream:353字节

  2. Java的GZIPOutputStream :207字节

压缩后的尺寸大小差距很明显。因此,我们可以得出结论,Java的GZIP压缩比.NET更好。

“Java和.NET的GZIP压缩功能实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯