问题描述
我的字符串是一个 Json 文件 (test.json),内容如下
{
"objectId": "bbad4cc8-bce8-438e-8683-3e603d746dee","timestamp": "2021-04-28T14:02:42.247Z","variable": "temperatureArray","model": "abc.abcdefg.abcdef","quality": 5,"value": [ 43.471600438222104,10.00940101687303,39.925500606152,32.34369812176735,33.07786476010357 ]
}
我压缩如下
using ICSharpCode.SharpZipLib.GZip;
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Text;
namespace GZipTest
{
public static class SharpZipLibCompression
{
public static void Test()
{
Trace.WriteLine("****************SharpZipLib Test*****************************");
var testFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),"test.json");
var text = File.ReadAllText(testFile);
var ipStringSize = System.Text.UTF8Encoding.Unicode.GetByteCount(text);
var compressedString = CompressString(text);
var opStringSize = System.Text.UTF8Encoding.Unicode.GetByteCount(compressedString);
float stringCompressionRatio = (float)opStringSize / ipStringSize;
Trace.WriteLine("String Compression Ratio using SharpZipLib" + stringCompressionRatio);
}
public static string CompressString(string text)
{
if (string.IsNullOrEmpty(text))
return null;
byte[] buffer = Encoding.UTF8.GetBytes(text);
using (var compressedStream = new MemoryStream())
{
GZip.Compress(new MemoryStream(buffer),compressedStream,false);
byte[] compressedData = compressedStream.ToArray();
return Convert.ToBase64String(compressedData);
}
}
}
}
但我的压缩字符串大小 (opStringSize) 大于原始字符串大小 (ipStringSize)。为什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)