使用 C# WinForm 窗口程序,使用两个文本框,在一个文本框中输入需要压缩的字符串,另一个文本框中输出。

不考虑数字的情况,假设只输入字母内容:

可以使用 C# 语言中的 System.IO.Compression 命名空间中的 GZipStream 类来实现字符串压缩和解压缩。

以下是一个简单的示例代码:

using System;
using System.IO;
using System.IO.Compression;
using System.Windows.Forms;

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

        private void btnCompress_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtInput.Text))
            {
                MessageBox.Show('请输入需要压缩的字符串!');
                return;
            }

            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(txtInput.Text);

            using (MemoryStream ms = new MemoryStream())
            {
                using (GZipStream gzip = new GZipStream(ms, CompressionMode.Compress, true))
                {
                    gzip.Write(buffer, 0, buffer.Length);
                }

                byte[] compressedData = ms.ToArray();
                txtOutput.Text = Convert.ToBase64String(compressedData);
            }
        }

        private void btnDecompress_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtOutput.Text))
            {
                MessageBox.Show('请输入需要解压的字符串!');
                return;
            }

            byte[] compressedData = Convert.FromBase64String(txtOutput.Text);

            using (MemoryStream ms = new MemoryStream(compressedData))
            {
                using (GZipStream gzip = new GZipStream(ms, CompressionMode.Decompress))
                {
                    using (StreamReader reader = new StreamReader(gzip))
                    {
                        string decompressedData = reader.ReadToEnd();
                        txtInput.Text = decompressedData;
                    }
                }
            }
        }
    }
}

其中,btnCompress_Click 方法实现了字符串压缩的功能,btnDecompress_Click 方法实现了字符串解压缩的功能。在这两个方法中,使用了 MemoryStream 类来将字节数据缓存到内存中,使用 GZipStream 类来进行压缩和解压缩操作。需要注意的是,在压缩时需要将压缩模式设置为 CompressionMode.Compress,在解压缩时需要将压缩模式设置为 CompressionMode.Decompress。另外,为了方便展示和传输,压缩后的字节数据使用了 Base64 编码。

C# WinForm 字符串压缩解压缩工具 - GZipStream 实现

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

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