C#StringBuilder继续写入文件而不是替换文件

时间:2019-06-14 03:21:15

标签: c# stringbuilder

我想继续写入StringBuilder中的现有文本文件,而不是将其替换为新文件。

原因:要从datatable持续记录文件并在执行过程中清除它,以防止程序长时间运行而积ho大量内存。 / p>

有可能吗?

下面是我当前的代码,该代码将替换为新的文本文件。

try
{
    var result = new StringBuilder();
    result.Append("#|ID|V1Records|V2Records|");
    result.AppendLine();

    foreach (DataRow row in SuccessTranslation.Rows)
    {
        for (int i = 0; i < SuccessTranslation.Columns.Count; i++)
        {
            result.Append(row[i].ToString());
            result.Append(i == SuccessTranslation.Columns.Count - 1 ? "\n" : "|");
        }
        result.AppendLine();
    }

    StreamWriter objWriter = new StreamWriter("C:\\Temp\\RecordsConversion_Success_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt", false);
    objWriter.WriteLine(result.ToString());
    objWriter.Close();
}

catch (Exception ex)
{
    log.LogError(Method, ex.Message.ToString());
}

1 个答案:

答案 0 :(得分:1)

更改此行:

StreamWriter objWriter = 
    new StreamWriter(
        "C:\\Temp\\RecordsConversion_Success_" + 
        DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt",
    false);

收件人:

StreamWriter objWriter = 
    new StreamWriter(
        "C:\\Temp\\RecordsConversion_Success_" +
        DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt", 
    true);

它将附加文本而不是替换文本。