将逗号分隔的字符串逐行写入文件
本文关键字:逐行 文件 字符串 分隔 | 更新日期: 2023-09-27 18:04:03
此cide旨在从富文本框(用逗号分隔的用户列表(中获取文本,然后将每个条目写在自己的行上。
然而,事实并非如此。我做错了什么?
if (chkWhiteList.Checked)
{
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(new char[] { ',' });
foreach (string user in list)
{
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"'white-list.txt"))
{
whiteList.WriteLine(String.Format("{0}'r'n", user));
}
}
}
我会交换你的using
和for loop
。并删除换行符
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"'white-list.txt"))
{
foreach (string user in list)
{
whiteList.WriteLine(user);
}
}
你的foreach和你的使用是错误的。您需要使用来设置streamwriter,然后在其中执行循环(foreach(来写入行。
if (chkWhiteList.Checked)
{
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(new char[] { ',' });
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"'white-list.txt"))
{
foreach (string user in list)
{
whiteList.WriteLine(String.Format("{0}'r'n", user));
}
}
}
(这是对你的代码的粗略破解。(
试试这个。。。。
if (chkWhiteList.Checked)
{
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(new char[] { ',' });
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"'white-list.txt"))
{
foreach (string user in list)
{
whiteList.WriteLine(String.Format("{0}'r'n", user));
}
}
}
{
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"'white-list.txt"))
{
whiteList.WriteLine(String.Format("{0}'r'n", user));
}
}
这将在每次与用户进行一行操作时重写到文件中。
在foreach
周围移动open语句,将所有用户名写入文件。
使用File.WriteAllLines
可以非常轻松地解决此问题
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(',');
System.IO.File.WriteAllLines(cleanDir + @"'white-list.txt", list);
WriteLine调用会附加一个CRLF,但是String.Format包含一个额外的CRLF。因此,每个用户将获得两行。
using语句需要在foreach之外(ist中的字符串用户(。