我目前正在尝试使用“|” 分隔文本文件并从其中包含的数据创建对象。例子:
Name|Address|City|State|Zip|Birthday|ID|Etc.
Name2|Address2|City2|State2|Zip2|Birthday2|ID2|Etc.
然后将新创建的对象添加到所述对象的列表中,程序通过使用 .Peek() 的 while 循环移动到文件的下一行(以确保我不会超过文件)。
但是,当它开始创建第二个对象(更具体地说,第二个对象的第二个字段)时,它会抛出一个 Index Out Of Range 异常,我终生无法弄清楚为什么。感谢任何可能阅读此内容的人!
StreamReader textIn = new StreamReader(new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read));
List<Student> students = new List<Student>();
while (textIn.Peek() != -1)
{
string row = textIn.ReadLine();
MessageBox.Show(row);
string [] fields = row.Split('|');
Student temp = new Student();
try
{
temp.name = fields[0];
temp.address = fields[1];
temp.city = fields[2];
temp.state = fields[3];
temp.zipCode = Convert.ToInt32(fields[4]);
temp.birthdate = fields[5];
temp.studentID = Convert.ToInt32(fields[6]);
temp.sGPA = Convert.ToDouble(fields[7]);
}
catch
{
MessageBox.Show("IndexOutOfRangeException caught");
}
students.Add(temp);
}
textIn.Close();