我正在将文本文件读入程序(它们是Unicode中的代码,输出必须是utf-8)。下面的代码适用于较小的代码(大约150行,其中行只有一个单词),但是当我在较大的文件(如20.000行,仍然只有一行的单词)上使用它时,程序需要半分钟完成任务。我应该编写新代码,还是有办法优化它?
int next;
string storage = "";
using (StreamReader sr = new StreamReader(path))
{
while( (next = sr.Read()) != -1 )
{
storage += Char.ConvertFromUtf32(next);
}
sr.Close();
}
答案 0 :(得分:3)
使用StringBuilder而不是String:
int next;
StringBuilder storage = new StringBuilder();
using (StreamReader sr = new StreamReader(path)) {
while ((next = sr.Read()) != -1) {
storage.Append(Char.ConvertFromUtf32(next));
}
sr.Close();
}
string result = storage.ToString();
答案 1 :(得分:0)
因此,当我使用不同的StreamReader时,一切都开始顺利运行,
using (StreamReader sr = new StreamReader(path, Encoding.Unicode))
这个,让我得到正确的格式化字符串,而不是int指示字符,这已经提高了A LOT的速度。