C# 将数组列表写入文本文件

本文关键字:文本 文件 列表 数组 | 更新日期: 2023-09-27 18:32:45

我需要将我的数组列表写入文本文件,到目前为止已经想出了这段代码。现在我对如何使用文本编写器将"行"写入我的文本文件感到困惑?一个过程从下面的 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()
{
}

我很抱歉最初感到困惑。

C# 将数组列表写入文本文件

尝试使用以下代码

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

最好的方法是@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);
            }
        }
System.IO.File.WriteAllText("FILE_PATH", line);

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

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

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

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

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