【发布时间】:2020-08-19 23:44:21
【问题描述】:
我在编写一些简单的程序时遇到了困难,该程序将一些数据写入文本文件并稍后从该文件中读取它们。
我有一个将行写入 txt 文件的函数;每行包含姓名、姓氏和身份证号码。
下面我有一个从该文件中读取数据的函数。
我想将姓名、姓氏和身份证号码分开,所以下面的代码似乎是正确的,但在调试过程中,我收到了一条消息“发生了“发生‘System.NullReferenceException’类型的未处理异常”这一行:
string[] tabstring = myString.Split(' ', ' ');.
我创建了包含 3 个元素的选项卡字符串 - 每个元素对应于行中的每个单词,即 tabstring[0]=Name 等等。
while 循环是对文本文件中的每一行执行此操作。但有些不对劲。
public void ReadFromFile()
{
FileStream fsListOfObjects = new FileStream("C:\\Users\\Dom\\Desktop\\ListOfObjects.txt",
FileMode.Open);
StreamReader srListOfObjects = new StreamReader(fsListOfObjects);
while (srListOfObjects.ReadLine() != null)
{
string myString= (srListOfObjects.ReadLine();
Console.WriteLine(myString);
**string[] tabstring = myString.Split(' ', ' ');**
Name = tabstring[0];
Surname = tabstring[1];
Id= long.Parse(tabstring[2]);
ClassName object= new ClassName(Name, Surname, Id);
myList.Add(object);
}
srListOfObjects.Close();
Console.ReadLine();
}
这是文本文件的样子:
Ann Brown 1233456789
Bruce Willis 098987875
Bill Gates 789678678
等等……
对于所描述的问题,我将不胜感激。
【问题讨论】:
-
准确地说:文本文件的每一行仅包含三个单词 Name (space between) Surname(spacebetween) Idnumber。
-
注意:文件之间可能有制表符,这被认为是不同的字符。最好按原样发布文件内容
-
没有文件没有任何标签,因为它是由函数创建的,每个单词之间只有一个空格,