使用 C# WinForm 开发一个简单的字符串压缩和解压缩工具,利用 System.IO.Compression 命名空间下的 GZipStream 类进行压缩和解压缩,并使用 Base64 编码将压缩后的数据转换为字符串输出。

步骤:

  1. 创建 WinForm 项目: 在 Visual Studio 中创建一个新的 WinForm 项目。
  2. 添加控件: 在窗体上添加两个文本框 (txtInputtxtOutput),以及两个按钮 (btnCompressbtnDecompress)。
  3. 编写代码:
using System;
using System.IO;
using System.IO.Compression;
using System.Text;
using System.Windows.Forms;

namespace StringCompression
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void btnCompress_Click(object sender, EventArgs e)
        {
            string input = txtInput.Text;
            if (!string.IsNullOrEmpty(input))
            {
                byte[] data = Encoding.UTF8.GetBytes(input);
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    using (GZipStream gzipStream = new GZipStream(memoryStream, CompressionMode.Compress))
                    {
                        gzipStream.Write(data, 0, data.Length);
                    }

                    byte[] compressedData = memoryStream.ToArray();
                    string output = Convert.ToBase64String(compressedData);
                    txtOutput.Text = output;
                }
            }
        }

        private void btnDecompress_Click(object sender, EventArgs e)
        {
            string input = txtOutput.Text;
            if (!string.IsNullOrEmpty(input))
            {
                byte[] compressedData = Convert.FromBase64String(input);
                using (MemoryStream memoryStream = new MemoryStream(compressedData))
                {
                    using (GZipStream gzipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
                    {
                        using (StreamReader streamReader = new StreamReader(gzipStream))
                        {
                            string output = streamReader.ReadToEnd();
                            txtInput.Text = output;
                        }
                    }
                }
            }
        }
    }
}
  1. 运行程序: 运行程序,在 txtInput 文本框中输入需要压缩的字符串,点击 btnCompress 按钮进行压缩,压缩后的结果将显示在 txtOutput 文本框中。点击 btnDecompress 按钮可以将压缩后的字符串解压缩。

代码说明:

  • GZipStream 类用于压缩和解压缩数据。
  • CompressionMode.Compress 表示压缩模式。
  • CompressionMode.Decompress 表示解压缩模式。
  • Convert.ToBase64String() 方法将压缩后的数据转换为 Base64 编码的字符串。
  • Convert.FromBase64String() 方法将 Base64 编码的字符串转换为字节数组。

注意事项:

  • 该程序只处理字符串,不考虑数字情况。
  • 压缩后的字符串长度可能比原始字符串更长,尤其对于较短的字符串。
C# WinForm 字符串压缩与解压缩:使用 GZipStream 实现

原文地址: https://www.cveoy.top/t/topic/lq15 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录