如何读取文本文件并将内容加载到arraylist中?

时间:2013-10-21 04:24:09

标签: c# file-io

我是C#的新手,也是一般的编程人员。我正在尝试读取txt文件的内容并将其加载到arraylist。我无法弄清楚在while循环中使用什么条件。

void LoadArrayList()
{
    TextReader tr;
    tr = File.OpenText("C:\\Users\\Maattt\\Documents\\Visual Studio 2010\\Projects\\actor\\actors.txt");

    string Actor;
    while (ActorArrayList != null)
    {
        Actor = tr.ReadLine();
        if (Actor == null)
        {
            break;
        }
        ActorArrayList.Add(Actor);
    }  
}

5 个答案:

答案 0 :(得分:2)

 void LoadArrayList()
{
    TextReader tr;
    tr = File.OpenText("C:\\Users\\Maattt\\Documents\\Visual Studio 2010\\Projects\\actor\\actors.txt");

    string Actor;
    Actor = tr.ReadLine();
    while (Actor != null)
    {
        ActorArrayList.Add(Actor);
        Actor = tr.ReadLine();
    }

}

答案 1 :(得分:1)

您只需 2行代码

即可
string[] Actor = File.ReadAllLines("C:\\Users\\Maattt\\Documents\\Visual Studio 2010\\Projects\\actor\\actors.txt");
ArrayList list = new ArrayList(Actor);

答案 2 :(得分:0)

这应该是

 void LoadArrayList()
{
    string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Maattt\Documents\Visual Studio 2010\Projects\actor\actors.txt");

   // Display the file contents by using a foreach loop.
   foreach (string Actor in lines)
   {
       ActorArrayList.Add(Actor);
  }
}

答案 3 :(得分:0)

只需重新安排它:

    Actor = tr.ReadLine();
    while (Actor != null)
    {
        ActorArrayList.Add(Actor);
        Actor = tr.ReadLine();
    }

答案 4 :(得分:0)

如果您查看the documentation for the TextReader.ReadLine method,如果没有其他行,您会看到它返回stringnull。因此,您可以做的是循环并根据ReadLine方法的结果检查null。

while(tr.ReadLine() != null)
{
    // We know there are more items to read
}

但是,如上所述,您没有捕获ReadLine的结果。所以你需要声明一个字符串来捕获结果并在while循环中使用:

string line;
while((line = tr.ReadLine()) != null)
{
    ActorArrayList.Add(line);
}

另外,我建议使用通用列表,例如List<T>而不是非通用ArrayList。使用类似List<T>的内容可以提高类型安全性并减少无效分配或转换的可能性。