【问题标题】:c# write an arraylist to a text filec# 将arraylist写入文本文件
【发布时间】:2013-09-25 04:15:38
【问题描述】:

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


    【解决方案1】:

    试试下面的代码

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

    【讨论】:

      【解决方案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);
                  }
              }
      

      【讨论】:

        【解决方案3】:
        System.IO.File.WriteAllText("FILE_PATH", line);
        

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

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

        【讨论】:

          【解决方案4】:
          File.WriteAllLines(filePath, ActorArrayList.ToArray());
          

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-02-28
              • 1970-01-01
              • 2016-07-26
              • 1970-01-01
              • 2016-11-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多