在 C# 中将大量行保存到文本文件的最快方法
Quickest way to save massive amount of lines to text file in c#
我目前正在编写一个程序,需要将数兆字节的数据保存到文本文件中。
数据保存在字符串中
<列表>
我现在的代码(allusernames是列表变量名)
string alltoappend = "";
string speichern = "C:\Users\" + Environment.UserName + "\Desktop\scraped.txt";
progressBarSetValue(progressBar1, 100);
MessageBox.Show("Done scraping!\nNow saving all the usernames to:\n" + speichern + "\nThis might take a while");
foreach (string linelist in allusernames)
{
alltoappend = alltoappend + "\n" + linelist;
}
File.AppendAllText(speichern, alltoappend, Encoding.UTF8);
System.Diagnostics.Process.Start(speichern);
allusernames.Clear();
保存 1 兆字节的数据可能需要几分钟时间,这是不必要的..
有没有更快的方法?我从人们那里听到了一些 .join() 的建议,但我不知道如何使用它。
帮助非常感谢
使用 StringBuilder:
StringBuilder sb = new StringBuilder();
foreach (string line in allusernames)
{
sb.AppendLine(line);
}
string result = sb.ToString();
也可以直接写入文件:
using (var stream = File.OpenWrite(filename))
{
using (var writer = new StreamWriter(stream))
{
foreach (string line in allusernames)
{
writer.WriteLine(line);
}
}
}
并且不要按原样使用路径。
错误:
string speichern = "C:\Users\" + Environment.UserName + "\Desktop\scraped.txt";
右:
string speichern = Path.Combine("C:\Users", Environment.UserName , "Desktop\scraped.txt");
最好的:
string speichern = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "scraped.txt");
我目前正在编写一个程序,需要将数兆字节的数据保存到文本文件中。
数据保存在字符串中 <列表>
我现在的代码(allusernames是列表变量名)
string alltoappend = "";
string speichern = "C:\Users\" + Environment.UserName + "\Desktop\scraped.txt";
progressBarSetValue(progressBar1, 100);
MessageBox.Show("Done scraping!\nNow saving all the usernames to:\n" + speichern + "\nThis might take a while");
foreach (string linelist in allusernames)
{
alltoappend = alltoappend + "\n" + linelist;
}
File.AppendAllText(speichern, alltoappend, Encoding.UTF8);
System.Diagnostics.Process.Start(speichern);
allusernames.Clear();
保存 1 兆字节的数据可能需要几分钟时间,这是不必要的..
有没有更快的方法?我从人们那里听到了一些 .join() 的建议,但我不知道如何使用它。
帮助非常感谢
使用 StringBuilder:
StringBuilder sb = new StringBuilder();
foreach (string line in allusernames)
{
sb.AppendLine(line);
}
string result = sb.ToString();
也可以直接写入文件:
using (var stream = File.OpenWrite(filename))
{
using (var writer = new StreamWriter(stream))
{
foreach (string line in allusernames)
{
writer.WriteLine(line);
}
}
}
并且不要按原样使用路径。
错误:
string speichern = "C:\Users\" + Environment.UserName + "\Desktop\scraped.txt";
右:
string speichern = Path.Combine("C:\Users", Environment.UserName , "Desktop\scraped.txt");
最好的:
string speichern = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "scraped.txt");