StringBuilder 字串写入文本文件,总多一个空白行

6lilu9 2020-07-16 04:07:01
            
StringBuilder sb = new StringBuilder();

sb.AppendLine($"首行");

foreach (Mapping item in MapData)
{
sb.AppendLine(item.ToString());
}

//储存
string DicFilePath = Path.Combine(BaseInfo, ProjectName, ProjectName + "_Dic.txt");
if (File.Exists(DicFilePath)) File.Delete(DicFilePath);
var fs = new FileStream(DicFilePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
using (StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("gb2312")))
{
sw.Write(sb.ToString());
}
fs.Close();


最后文本文件中总会多一空白行,请教怎么解决?
...全文
8530 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你能看出来你在 #3 楼所说的逻辑跟你自己写出来的代码并不“知行合一”会更好。
6lilu9 2020-07-17
  • 打赏
  • 举报
回复
引用 6 楼 以专业开发人员为伍 的回复:
逻辑错误:
            sb.Append($"首行");
 
            foreach (Mapping item in MapData)
            {
               sb.AppendLine();
               sb.Append(item.ToString());
            }
看到你代码,感觉好简单呀 我脑子都是想得啥,这都没想到....
  • 打赏
  • 举报
回复
逻辑错误:

            sb.Append($"首行");

foreach (Mapping item in MapData)
{
sb.AppendLine();
sb.Append(item.ToString());
}
Bridge_go 2020-07-16
  • 打赏
  • 举报
回复
AppendLine 是追加后换行 Append只是追加

StringBuilder sb = new StringBuilder();
sb.Append("123");
sb.AppendLine("456");
sb.Append("789");
结果: 123456 789
6lilu9 2020-07-16
  • 打赏
  • 举报
回复
sw.Write(sb.ToString().TrimEnd(new char[] { '\r', '\n' }) );
完美解决,谢谢两位老师~~
6lilu9 2020-07-16
  • 打赏
  • 举报
回复
引用 2 楼 正怒月神 的回复:
AppendLine 是你要求换行的啊。
引用 1 楼 杀马特丶蛮牛 的回复:

appendline行尾有换行,append没有
 sb.AppendLine(item.ToString());
 sb.Append(item.ToString());
我没搞懂,sb.Append(“内容”);, 这句话不是应该是 另起一行写入内容 两字? 但现在的效果是 写入“内容” 两字 后另起一行呀
正怒月神 2020-07-16
  • 打赏
  • 举报
回复
AppendLine 是你要求换行的啊。
杀马特丶蛮牛 2020-07-16
  • 打赏
  • 举报
回复

appendline行尾有换行,append没有
 sb.AppendLine(item.ToString());
 sb.Append(item.ToString());

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧