c#将arraylist写入文本文件

时间:2013-09-25 04:15:38

标签: c#

我需要将我的数组列表写入文本文件,到目前为止已经提出了这个代码。 现在我很困惑如何写“'线'使用textwriter到我的文本文件? 一个过程从下面的txt文件加载列表。

public void LoadArrayList()
{
TextReader tr;
tr = File.OpenText("C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt");
string line = tr.ReadToEnd();
Console.WriteLine(line);
if (line != null)
{
    ActorArrayList.Add(line);
}
else

 tr.Close();
}

然后我会在我的表单中填充组合框。

public void PopulateActors()
{
  cboActor.Items.Clear();
  foreach (string line in ActorArrayList)
        {
            cboActor.Items.AddRange(File.ReadAllLines("C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt")); 
        }
}

这个程序我需要它来编写我的整个数组" ActoryArrayList"进入文本文件。

public void WriteArrayList()
{

}

我很抱歉最初感到困惑。

5 个答案:

答案 0 :(得分:12)

尝试使用以下代码

        // Example #1: Write an array of strings to a file. 
        // Create a string array that consists of three lines. 
        string[] lines = { "First line", "Second line", "Third line" };
        // WriteAllLines creates a file, writes a collection of strings to the file, 
        // and then closes the file.
        System.IO.File.WriteAllLines(@"C:\Users\Mirro\Documents\Visual Studio 2010\Projects\Assessment2\Assessment2\act\actors.txt", lines);

输出:

     //   First line 
     //   Second line 
     //   Third line 

答案 1 :(得分:2)

最好的方法是@ Leez的方式,但你也可以使用TextWriter和foreach运算符来实现:

        //your array
        string[] yourArray = { "fisrt", "second", "third" };
        string text = "C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt";
        using (TextWriter writer = File.CreateText(text))
        {

            foreach (string i in yourArray)
            {
                writer.WriteLine(i);
            }
        }

答案 2 :(得分:1)

System.IO.File.WriteAllText("FILE_PATH", line);

BTW,代码中的ArrayList在哪里?另外,请考虑将System.IO.File.ReadAllText("FILE_PATH")用于日常文件阅读。

如果您要将ArrayList实际写入磁盘文件,则需要先将ArrayList的内容序列化为XML或二进制等。然后您可以使用上述方法将该序列化表示写入文件。另请注意,序列化集合涉及一个名为复制的概念。 This question可以帮助您更好地理解这一概念。

答案 3 :(得分:1)

File.WriteAllLines(filePath, ActorArrayList.ToArray());

答案 4 :(得分:0)

WriteAllLines输出两个行尾字符(回车和换行符-\ r \ n)。如果您不希望每行(\ r \ n)的末尾有两个行尾字符,则可以使用StreamWriter仅输出一个字符(\ n)。

using (StreamWriter sw = new StreamWriter(@"C:\mypath\file.txt"))
{
    foreach (string s in linesArray)
        sw.Write(s + "\n");
}