我有一个客户端,它想要一个将所有文本都放在一行上的文本文件。就像EDI文件一样。
我有一个数据表,里面有成千上万的客户和客户信息。我的方法在数据表中循环,获取客户信息并将其写入文本文件。文本文件中的每一行都有一个客户的信息。有成千上万的客户,这意味着文本文件中有数千行。
我不知道如何将所有客户放在文本文件中的一行。如果有人有什么建议,我将不胜感激。
您可以使用Write
(不会添加新行),也可以在每个客户之间使用Write
一些分隔符(空格、制表符等),而不是使用WriteLine
来写入每个客户。
假设我有一个包含所有名称的字符串数组(string[]
),它实际上可以是任何实现IEnumerable<T>
的集合;
string OneBigLine = String.Join(MyDelimiter, myStringArray);
File.WriteAllText(OneBigLine);
或者把它全部做成一行;
File.WriteAllText(String.Join(MyDelimiter, myStringArray));
如果您已经打开了文件,您可以使用StreamWriter
Write
方法而不是经典的WriteLine
方法追加更多客户。
using (StreamWriter sw = new StreamWriter("file.txt"))
{
foreach (Customer customer in customers)
{
sw.Write(customer.Name);
}
}
如果你每次都需要打开文件,你可以使用StreamWriter
的重载来附加新的文本,而不是覆盖它
using (StreamWriter sw = new StreamWriter("file.txt", true))
{
sw.Write(customer.Name);
}
如果需要,还需要手动添加分隔符。
感谢大家的回答。然而,我选择了以下内容。写入行有一个默认的回车换行符,如下所示。\\r\n
我将Newline属性调整为一个空白字符串,如sw。NewLine=";。
sw是我的流媒体作家。这正是我想要的。它不添加新行,而是创建一个非常长的行。