Streamreader Readline() 抛出异常

Streamreader Readline() throws exception

我有一个与服务器通信的客户端,下面的代码应该在控制台上打印输入的内容 - 这跨越多行。

问题是它显示所有行,然后抛出异常。

我尝试了不同的方法来让它工作,例如 peek() 导致最后一行被截断并抛出相同的异常。

有什么我想念的吗?

using (sr)
{
    try
    {
        while (!sr.EndOfStream)
        {
        Console.WriteLine(sr.ReadLine());
        }
    }
    finally
    {
    sr.Close();
    }
}

异常是:System.IO.IOException:无法从传输连接读取数据:连接尝试失败,因为连接方在之后没有正确响应 一段时间,或建立的连接失败,因为连接的主机没有响应。

我在 using (sr)

之前使用了 .ReadTimeout.WriteTimeout

如果没有更多的上下文,这将很难解决。您的问题可能源于:

  • 权限:可能无法通过应用程序访问该文件。
  • 要读取的文件类型无效。
  • 客户端和服务器之间的问题。

有相当多的变量,没有更多的上下文。但是,您可以尝试以下操作:

using(var reader = new StreamReader(...))
{
     string line;
     while((line = reader.ReadLine()) != null)
           Console.WriteLine(line);
}

如果可行,那么 while(!reader.EndOfStream) 将内容逐行转储到您的控制台之间可能是个问题。

如果您提供更多背景信息,希望我们能提供更好的帮助。

重要提示: 我注意到在您声明 StreamReader 的使用中,您实际上并没有指定要读取的文件.这会引发异常,因此您可能还想在示例中实际添加它。

您的原始 IOException 只能生成以下内容之一:

  • DirectoryNotFoundException
  • EndOfStreamException
  • FileNotFoundException
  • FileLoadException
  • PathTooLongException

这也应该可以帮助您确定问题。