将逗号分隔的字符串逐行写入文件

本文关键字:逐行 文件 字符串 分隔 | 更新日期: 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));
                }
            }
        }

将逗号分隔的字符串逐行写入文件

我会交换你的usingfor 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中的字符串用户(。