-1
我使用下面的代碼來壓縮字符串,但字符串不會更短。你能解釋爲什麼嗎?使用GZip壓縮字符串,字符串不會更短
private string Compress(string str)
{
try
{
String returnValue;
byte[] buffer = Encoding.ASCII.GetBytes(str);
using (MemoryStream ms = new MemoryStream())
{
using (GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true))
{
zip.Write(buffer, 0, buffer.Length);
using (StreamReader sReader = new StreamReader(ms, Encoding.ASCII))
{
returnValue = sReader.ReadToEnd();
}
}
}
return returnValue;
}
catch
{
return str;
}
}
什麼是輸入,輸出是什麼?你有沒有機會登陸釣魚區?你調試了嗎? – nvoigt 2014-10-22 11:32:10
您是否嘗試刪除'catch'塊以查看您的代碼是否在默默無聞?一般來說,絕對不要寫'catch {}' - 即使'catch(Exception ex){log(ex)}'稍微好一點,儘管通常仍然過於寬泛。 – 2014-10-22 11:32:24
爲什麼你將內存流(二進制)的內容讀回來,就好像它是ASCII字符串一樣?這將使產量超出恢復範圍。 – 2014-10-22 11:32:59