【问题标题】:C# StringBuilder Continue Writing to a File instead of Replacing it [duplicate]C#StringBuilder继续写入文件而不是替换它[重复]
【发布时间】:2019-06-14 11:28:51
【问题描述】:

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

原因:为了持续从datatable 记录到文件,并在过程中清除它,以防止程序长时间运行时囤积大量内存。

有可能吗?

以下是我当前的代码,它替换为一个新的文本文件。

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());
}

【问题讨论】:

    标签: c# stringbuilder


    【解决方案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);
    

    这将追加文本而不是替换它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 2013-08-26
      • 2014-02-24
      • 2012-11-01
      • 1970-01-01
      相关资源
      最近更新 更多