使用C#将ArrayList写入文本文件

7

我需要将我的数组列表写入文本文件,到目前为止,我已经想出了以下代码。但是,我不知道如何使用textwriter将'line'写入我的文本文件中?下面的一个过程将列表从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个回答

17

尝试使用以下代码

        // 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 

3
最好的方法是@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);
            }
        }

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

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

顺便问一下,你的代码中的 ArrayList 在哪里?此外,考虑使用 System.IO.File.ReadAllText("FILE_PATH") 进行每日文件读取。

如果要将 ArrayList 写入磁盘文件,则需要先对 ArrayList 的内容进行序列化,比如序列化为 XML 或二进制格式等。然后您可以使用上述方法将序列化表示写入文件。另请注意,序列化集合涉及到一个称为深复制和浅复制的概念。 这个问题 可以帮助您更好地理解这个概念。


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");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接