用streamwriter替换换行符会删除后面的所有内容。 (ASP.NET,Json,C#)

时间:2017-06-02 10:47:47

标签: asp.net csv replace newline streamwriter

我有一个意想不到的问题,我希望你们中的一个可以帮助我。

我有一个带有许多端点的ASP.NET Web API,其中一个端点接收用户输入,作为JSON接收,并将其转换为一个订单对象,该对象被写入.CSV格式的文件。以下是完整代码的一小部分作为示例。

using (StreamWriter writer = new StreamWriter(file))
        {
           writer.Write(escape + order.Notes + escape + delim);
           writer.Write(escape + order.Reference1 + escape + delim);
           writer.Write(escape + order.Reference2 + escape + delim);

           writer.WriteLine();                 
           writer.Flush();
    }

我遇到的问题是有些用户倾向于添加换行符 某些字段,这会对我的订单文件造成严重破坏。为了删除 这些新行字符,我尝试了以下两种方法。

writer.Write(escape + product.Notes.Replace("\n", " ") + escape + delim);
writer.Write(escape + product.Notes.Replace(System.Environment.NewLine, " ") + escape + delim);

但是,似乎不是只删除新行字符并继续写其余字段,当遇到新行时,不会写入任何其他内容。

其他一切都被" "或者根本没有写任何其他东西,但我不知道是哪一个。

如果删除.Replace(),则会再次写入整个文件,但会有额外的换行符。

我希望有人经历过这一次并知道答案!

0 个答案:

没有答案