【问题标题】:Stream is closed in java流在java中关闭
【发布时间】:2021-07-08 22:50:14
【问题描述】:

这是我的代码

    try
    {
      reader.read(msg1,0,6);
    } catch (SocketTimeoutException e1){
      loopcount = 1 ;
      reader.close();
      writer.close();
      client.close();
      reader = null;
      writer = null;
      client = null;
    
    }
    try
    {
      msg2 = new char[2000];
      reader.read(msg2,0,intArrLen);
    }catch (SocketTimeoutException e1){
      loopcount = 1 ;
      reader.close();
      writer.close();
      client.close();
      reader = null;
      writer = null;
      client = null;
    
    }

在方法内部,在这一行阅读器处。 read (msg1,0,6) 能够正确读取响应。在此之后,当尝试在线路阅读器处读取响应时。读取 (msg2,0,intArrLen)。

它正在给流关闭异常 - 异常:java。我哦。 IO 异常:流已关闭。所以需要帮助来理解为什么会出现这个异常。

【问题讨论】:

  • 可能是服务器端的问题

标签: java


【解决方案1】:

首先,您要关闭阅读器的连接,然后不创建一个新的连接,使用已关闭的相同阅读器调用该函数。

相反,您可以使用reader.flush() 方法。

更多信息请参考link

【讨论】:

  • 第一次使用 reader 对象读取消息时没有 SocketTimeoutException,因此 reader 对象没有关闭。当我们第二次使用相同的读取器对象读取消息时,我们得到流已关闭异常,当我们运行代码 10 次时,这个问题会出现 3 到 4 次。请帮忙。
猜你喜欢
  • 2010-10-05
  • 2012-07-01
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
  • 2021-03-09
  • 2016-03-03
相关资源
最近更新 更多