如何拥有一串NUL字符时如何处理EOF

时间:2012-02-27 22:34:22

标签: c# file eof

我正在使用此文件阅读文件 while ((line = f1.ReadLine()) != null) 但是我的程序无法处理在调试器中总是有这个的最后一行“\ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 .... on and on“ 处理这个问题的最佳方法是什么?

while ((line = f1.ReadLine()) != null)
            {
                doing abc

              }

当我运行调试器时,它仍然进入循环并执行abc。因为行中没有任何内容,它失败了

1 个答案:

答案 0 :(得分:1)

不幸的是,一串null

'\0\0\0\0\0\0\0\0\0\0`

Isn&#t; t == null。你可以尝试这样的事情:

while(!string.IsNullOrEmpty(line = f1.ReadLine()))
{
  if (line[0]=='\0') {
    /// strings should rarely start with null, so feel feel to break out of your loop here.
  }
  else
  {
    // found some real content, so process normally.
  }
}
但是,我不是那种支票的粉丝。希望别人会有更好的建议。

一个更好的问题可能是:为什么我在逐行阅读文本文件时会得到一个长篇大小的空字符串?