当我从文件中读取并且文件空行时我收到此错误,我希望循环停在空行但是我收到此错误,我应该怎么做?
string[] delim = new string[] { "," };
bool eof=false;
int k=0;
do
{
string[] linie = sr.ReadLine().Split(delim, StringSplitOptions.None);
if (String.IsNullOrWhiteSpace(linie[0]))
eof = true;
else
{
A[k] = double.Parse(linie[0]);
l[k] = Convert.ToInt32(linie[1]);
c[k] = Convert.ToInt32(linie[2]);
}
k++;
}
while (!eof);
错误在于:string[] linie = sr.ReadLine().Split(delim, StringSplitOptions.None);
。
答案 0 :(得分:3)
将你的陈述分成多行:
String line = sr.ReadLine();
if (!String.IsNullOrEmpty(line))
{
string[] linie = line.Split(delim, StringSplitOptions.None);
//The rest of your code
}
正如杰夫指出的那样,如果你有> .Net4然后你可以使用IsNullOrWhiteSpace
答案 1 :(得分:0)
当您到达文件末尾时,sr.ReadLine()
会返回null
。因此,当您尝试拆分null
时,您将获得NullReferenceException
。
在进行拆分之前,您应该检查null。
组织你的可能性的另一种方法可能是:
string line;
while ((line = sr.ReadLine()) != null)
{
}