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();
之前写错了,其实是需要将换行符去掉,也就是将多行并成一行显示,但最后结果总是多了尾部的一道两个字符串出来了。 展开
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();
之前写错了,其实是需要将换行符去掉,也就是将多行并成一行显示,但最后结果总是多了尾部的一道两个字符串出来了。 展开
5个回答
展开全部
line = line.Replace("\r\n","\n").Trim();从代码中看,也就是这个地方的缘故。才会出现那样的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案:5. 表面都是心连心,背后都在玩脑筋。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FileStream fs1 = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite);
把这一行的FileMode.Open改为FileMode.Create就行了,
解释:FileMode.Open:打开已经有的,这时候写入是内容覆盖,原文本的两个字符串
有可能没有全部覆盖
FileMode.Create :直接覆盖已经有的文件。
把这一行的FileMode.Open改为FileMode.Create就行了,
解释:FileMode.Open:打开已经有的,这时候写入是内容覆盖,原文本的两个字符串
有可能没有全部覆盖
FileMode.Create :直接覆盖已经有的文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是不是进行了追加 或者是并行的时候没清空变量什么的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询