把字符串写入文本文件的问题
strings=null;foreach(List<string>listStrinarrText)//arrText为List<List<string>>{foreac...
string s = null;
foreach (List<string> listStr in arrText) //arrText为List<List<string>>
{
foreach (string str in listStr)
{
s = s + str + ";"; //把listStr中的每个字符串用";"隔开
}
sw.WriteLine(s); //sw为写入文件实例
s = s.Remove(0,s.Length); //清空s字符串,以备下次使用
}请问为什么上述代码写出的文件为空?其中arrText内容不为空、listStr中也是有字符串的;如果注释掉“ s = s.Remove(0,s.Length);”,写出的文件就不为空,但从第二行开始,每写一行,就会重复上一行的内容。 展开
foreach (List<string> listStr in arrText) //arrText为List<List<string>>
{
foreach (string str in listStr)
{
s = s + str + ";"; //把listStr中的每个字符串用";"隔开
}
sw.WriteLine(s); //sw为写入文件实例
s = s.Remove(0,s.Length); //清空s字符串,以备下次使用
}请问为什么上述代码写出的文件为空?其中arrText内容不为空、listStr中也是有字符串的;如果注释掉“ s = s.Remove(0,s.Length);”,写出的文件就不为空,但从第二行开始,每写一行,就会重复上一行的内容。 展开
4个回答
2013-08-29
展开全部
s = s + str + ";"; //把这句话改为s=str+";";s = s.Remove(0,Length); //把这句话去掉/*建议使用StringBuild(好像C#中的叫这个,你应该知道吧就是那个带缓存的可变的字符串),最好使用它的append方法去追加字符串,完成追加后将整个字符串写入文本这样程序的效率会提高。 */
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写文件的操作怎么可能在foreach循环里面,肯定是将这个字符串通过foreach循环赋值完成之后一次写入文件,在foreach循环里面,当然是每写一行会重复上一行的内容,因为你的循环决定了后一行是在前一行的基础上累加的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-29
展开全部
s = s.Remove(0,s.Length); 你把这句换成s.Length=0;试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-29
展开全部
在最外面加上一个sw.close(); 没有关闭数据流 是无法写入数据的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询