首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用File.WriteAllText时没有换行(string,string)

使用File.WriteAllText时没有换行(string,string)
EN

Stack Overflow用户
提问于 2015-09-27 09:56:42
回答 4查看 9.8K关注 0票数 4

我注意到在我使用下面的代码创建的文件中没有换行符。在数据库中,我也存储文本,这些文本是存在的。

代码语言:javascript
复制
string story = "Critical error occurred after " 
  + elapsed.ToString("hh:mm:ss") 
  + "\n\n" + exception.Message;
File.WriteAllText(path, story);

因此,经过一些short googling之后,我了解到我应该使用Environment-NewLine而不是文字\n来引用新行,所以我添加了如下所示。

代码语言:javascript
复制
string story = "Critical error occurred after " 
  + elapsed.ToString("hh:mm:ss") 
  + "\n\n" + exception.Message;
  .Replace("\n", Environment.NewLine);
File.WriteAllText(path, story);

但是,输出文件中没有中断行。我遗漏了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-27 10:04:37

试试StringBuilder方法--它更易读,不需要记住Environment.NewLine\n\r\n

代码语言:javascript
复制
var sb = new StringBuilder();

string story = sb.Append("Critical error occurred after ")
               .Append(elapsed.ToString("hh:mm:ss"))
               .AppendLine()
               .AppendLine()
               .Append(exception.Message)
               .ToString();
File.WriteAllText(path, story);

简单解决方案:

代码语言:javascript
复制
string story = "Critical error occurred after " 
  + elapsed.ToString("hh:mm:ss") 
  + Environment.NewLine + exception.Message;
File.WriteAllLines(path, story.Split('\n'));
票数 6
EN

Stack Overflow用户

发布于 2017-05-30 17:22:43

而不是使用

代码语言:javascript
复制
File.WriteAllText(path, content);

使用

代码语言:javascript
复制
File.WriteAllLines(path, content.Split('\n'));
票数 4
EN

Stack Overflow用户

发布于 2015-09-27 10:05:16

可以使用WriteLine()方法,如下所示

代码语言:javascript
复制
   using (StreamWriter sw = StreamWriter(path)) 
        {
            string story = "Critical error occurred after "  +elapsed.ToString("hh:mm:ss");
            sw.WriteLine(story);   
            sw.WriteLine(exception.Message); 
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32806677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档