C#中使用streamWriter向文本中写入字符串时为什么结尾会多出一部分已写过的字符串?

例如文本中是1234;#\r\n5678;#\r\n7890;#\r\n1234;#刚开始时每四个字符一行,并称一行后结果变成了1234;#5678;#7890;#123... 例如文本中是1234;#\r\n5678;#\r\n7890;#\r\n1234;# 刚开始时每四个字符一行,并称一行后结果变成了1234;#5678;#7890;#1234;#1234;# 哪位大侠高手能指点下?
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
line = sr.ReadToEnd();
sr.Close();
fs.Close();
line = line.Replace("\r\n","").Trim();
FileStream fs1 = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite);
StreamWriter sr1 = new StreamWriter(fs1, Encoding.GetEncoding("gb2312"));
sr1.Write(line);
sr1.Flush();
sr1.Close();
fs1.Close();
之前写错了,其实是需要将换行符去掉,也就是将多行并成一行显示,但最后结果总是多了尾部的一道两个字符串出来了。
展开
 我来答
w362435819
2012-07-24 · TA获得超过162个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:372万
展开全部
没有代码,不知道
你将原数据读出来,然后换了换行符
line = line.Replace("\r\n","\n").Trim();

/n不是换行符,任何时候,你不管什么地方,想换行你就写/r/n
善小星tS
2012-07-24 · 超过33用户采纳过TA的回答
知道答主
回答量:293
采纳率:0%
帮助的人:91.1万
展开全部
line = line.Replace("\r\n","\n").Trim();从代码中看,也就是这个地方的缘故。才会出现那样的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tn...2@163.com
2015-01-01 · 超过18用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:86.4万
展开全部
答案:5. 表面都是心连心,背后都在玩脑筋。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣0羽
2019-08-15 · TA获得超过173个赞
知道答主
回答量:135
采纳率:0%
帮助的人:22.9万
展开全部
FileStream fs1 = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite);
把这一行的FileMode.Open改为FileMode.Create就行了,
解释:FileMode.Open:打开已经有的,这时候写入是内容覆盖,原文本的两个字符串
有可能没有全部覆盖
FileMode.Create :直接覆盖已经有的文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友87facf6
2012-07-23 · 超过25用户采纳过TA的回答
知道答主
回答量:135
采纳率:0%
帮助的人:70.2万
展开全部
你是不是进行了追加 或者是并行的时候没清空变量什么的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式