7

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

}

我很抱歉最初造成混淆。

4

5 回答 5

15

尝试使用以下代码

        // 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 
于 2013-09-25T04:22:02.783 回答
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);
            }
        }
于 2013-09-25T04:31:36.150 回答
1
System.IO.File.WriteAllText("FILE_PATH", line);

顺便说一句,ArrayList你的代码在哪里?另外,考虑System.IO.File.ReadAllText("FILE_PATH")用于日常文件阅读。

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

于 2013-09-25T04:17:10.410 回答
1
File.WriteAllLines(filePath, ActorArrayList.ToArray());
于 2013-09-25T04:26:54.237 回答
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");
}
于 2018-10-06T21:52:46.807 回答