`
rainshow
  • 浏览: 31549 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类
最新评论

字符串压缩与解压

 
阅读更多
项目中一些大文本需要存数据库,为减少数据库的IO,对文本进行压缩。取出来的时候再解压缩
    /**
     * 字符串压缩
     * @param input
     * @return
     */
    public static final byte[] compress(byte[] input) {
        if (input == null) {
            return null;
        }
        Deflater compressor = new Deflater();
        compressor.setLevel(Deflater.BEST_SPEED); //调整压缩策略,这里使用了最快速的压缩方式
        compressor.setInput(input);
        compressor.finish();
        int len = input.length;
        ByteArrayOutputStream bos = new ByteArrayOutputStream(len);
        while (!compressor.finished()) {
            byte[] buf = new byte[len];
            int count = compressor.deflate(buf);
            if (count > 0) {
                bos.write(buf, 0, count);
            }
        }
        return bos.toByteArray();
    }

    /**
     * 解压缩
     * @param compressed
     * @return
     */
    public static final byte[] decompress(byte[] compressed) {
        if (compressed == null) {
            return null;
        }
        try {
            Inflater decompressor = new Inflater();
            decompressor.setInput(compressed);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            int len = compressed.length << 2;
            while (!decompressor.finished()) {
                byte[] buf = new byte[len];
                int count = decompressor.inflate(buf);
                if (count > 0) {
                    bos.write(buf, 0, count);
                }
            }
            return bos.toByteArray();
        } catch (DataFormatException e) {
            return compressed;
        }
    }
分享到:
评论

相关推荐

    LZ78算法实现对任意字符串的压缩与解压

    - 读取压缩字符串,每次取出一个编码,根据编码在字典中找到对应的子串,并添加到解压后的字符串中。 - 更新字典,将新生成的子串(当前解压字符串+下一个编码对应的子串的第一个字符)添加到字典。 - 重复此过程...

    字符串的压缩与解压 java

    字符串的压缩和解压,java语言编写,zip实现,代码编写

    字符串的压缩和解压

    根据给定文件的信息,本文将围绕“字符串的压缩与解压”这一主题展开,深入探讨字符串压缩和解压的基本原理、实现方法以及应用场景等多方面内容。 ### 字符串压缩和解压概述 字符串的压缩与解压是计算机科学中的一...

    字符串压缩程序.rar

    在IT领域,字符串压缩是一种常见的数据压缩技术,用于减少存储空间和提高传输效率。这个名为“字符串压缩程序.rar”的压缩包包含了一个特定的程序代码,它利用了zip算法来实现字符串的压缩。对于初学者来说,这是一...

    Delphi解压gzip字符串例程

    以下是使用Delphi和ZLib库进行gzip字符串压缩和解压的详细步骤: 1. **压缩gzip字符串**: - 首先,你需要将`ZLib`库导入到Delphi项目中。这通常涉及到将`DelphiZLib.123`这样的库文件添加到你的项目路径中,并...

    字符串解压缩

    字符串压缩通常基于特定的算法,如霍夫曼编码、LZ77、LZ78、Run-Length Encoding (RLE) 或者Burrows-Wheeler Transform (BWT)。这些算法的目标是减少字符串的存储空间,通过识别和利用字符串中的重复模式或统计特性...

    java算法,实现压缩及解压缩

    通过`java.util.zip`包提供的工具类,可以方便地实现文件压缩与解压缩操作。需要注意的是,在实际应用过程中还需要考虑异常处理、资源释放等细节问题,以确保程序的稳定性和安全性。此外,还可以进一步优化缓冲区...

    【华为机考2017】字符串解压缩算法

    华为机考2017:字符串解压缩算法,通过率100%

    字符串压缩

    标题中的“字符串压缩”指的是在计算机科学中,对文本数据进行编码优化的技术,以减少存储空间的需求。在处理大量文本信息时,这种技术尤为重要,因为它可以显著降低存储和传输的成本。压缩通常涉及到查找数据中的...

    Python123之字符串压缩#134865

    在Python编程语言中,字符串压缩是一个常见的操作,特别是在处理大量文本数据时,为了节省存储空间,我们会使用压缩算法。本节我们将深入探讨Python中的字符串压缩技术,并以标题"Python123之字符串压缩#134865"为...

    string-yasuo.zip_字符串压缩

    在IT领域,字符串压缩是一种常见的数据处理技术,用于减少存储空间的需求,特别是在处理大量文本数据时。这个"string-yasuo.zip_字符串压缩"的压缩包文件似乎包含了一个专门用于字符串压缩的程序,旨在提高程序的...

    一个DELPHI压缩字符串的例子如RTF格式

    为了解决这个问题,可以对RTF字符串进行压缩,以减少传输的数据量。 在DELPHI中,我们可以利用各种压缩库或算法来实现字符串的压缩。例如,ZLib库提供了一套完整的压缩和解压缩功能,包括常用的Deflate算法。以下是...

    python字符串压缩.pdf

    在Python编程语言中,字符串压缩是一项重要的数据处理技术,它用于减少存储空间需求或在网络传输时减小数据量。Python提供了多种内置库和第三方库来实现字符串的压缩和解压缩功能。以下是关于Python字符串压缩的一些...

    C#自定义字符串压缩和解压缩的方法

    本文将介绍如何自定义一个简单的字符串压缩和解压缩的方法,使用.NET框架内置的`System.IO.Compression.GZipStream`类。 首先,让我们分析`ZipLib`类中的`Zip`方法。这个方法接收一个字符串`value`作为输入,其目的...

    C#中压缩字符串

    使用以下代码进行压缩和解压 /// /// 利用ICSharpCode压缩 /// /// &lt;param name="param"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; public static string IC_Compress(string param) { byte[] data = System....

    解压Zip字符串(Delphi)

    本主题聚焦于在Delphi环境下使用gZip进行字符串解压,这涉及到两个主要的知识点:一是gZip压缩算法,二是Delphi编程语言中的解压实现。 首先,我们来了解gZip压缩算法。gZip是一种广泛使用的数据压缩格式,基于...

    【免费题库】华为OD机试 - 一种字符串压缩表示的解压(Java & JS & Python & C & C++).html

    【免费题库】华为OD机试 - 一种字符串压缩表示的解压(Java & JS & Python & C & C++).html付费专栏内容,免费下载,多种语言解法

Global site tag (gtag.js) - Google Analytics