我有C#.Net
需要知道的大型base64编码文本文件如何将这个大字符串解码为字符串?
我使用此代码但需要很长时间,有时它会被冻结并停止响应
richTextBox2.Text = Base64Decode(richTextBox1.Text); // I Past text at richTextBox1
我也试试这个
var bytes = Convert.FromBase64String(richTextBox1.Text);
var text = System.Text.Encoding.Unicode.GetString(bytes, 0, bytes.Length);
richTextBox2.Text = text.ToString();
有许多类似的问题,但我发现没有人谈论大文本文件
编辑:
public static string Base64Decode(string base64EncodedData)
{
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
答案 0 :(得分:3)
base-64中的每4个字节恰好代表原始有效负载的3个字节,填充为零。因此,如果问题是同时执行所有操作,只需考虑4的倍数(例如,4千,或4 * 1024),并分批处理数据(或者剩下多少,否则)。 / p>
然而,1MB 不大量数据;我不希望这是问题所在。从以下内容:
var data = new byte[10000000];
var watch = Stopwatch.StartNew();
string s = Convert.ToBase64String(data);
watch.Stop();
Console.WriteLine(watch.ElapsedMilliseconds);
watch.Reset();
watch.Start();
byte[] b = Convert.FromBase64String(s);
watch.Stop();
Console.WriteLine(watch.ElapsedMilliseconds);
我得到30ms到base-64编码10,000,000字节,50ms到base-64解码字符串(长度:13,333,336个字符)。
答案 1 :(得分:-4)
使用BackgroundWorker完成工作。