【问题标题】:What value is there after we read values from InputStream从 InputStream 读取值后有什么值
【发布时间】:2014-05-14 02:54:10
【问题描述】:

我想知道,当我们从InputStream 读取内容之后,流中有什么值?它是删除还是保留相同的值? 例如,我有一个代码从InputStream 读取一些内容并打印在屏幕上。代码如下:

        char[] data = new char[1024];
        while (!isInterrupted()) {
            try {
                in.read(data);  // Step 1
            } catch (IOException e) {
                continue;
            }
            msg = new String(data);
            System.out.println(msg);   // Step 2
        }

因此,当第 1 步第一次读取某些内容并且第 2 步打印它时,就可以了。但是,当它再次进入第 1 步时,如果发件人没有发送任何内容,那么第 1 步会做什么?它会等到它获得新值(或发件人发送任何东西)还是会读取相同的值并打印相同的值?还是会抛出异常?请帮忙。

【问题讨论】:

    标签: java sockets stream inputstream


    【解决方案1】:

    The javadoc 说:

    在输入数据可用、检测到文件结尾或引发异常之前,此方法会一直阻塞。

    因此,除非发送方关闭流,否则它将阻塞,直到数据可用,根据文档。

    【讨论】:

      猜你喜欢
      • 2013-09-02
      • 1970-01-01
      • 2014-06-03
      • 2012-03-03
      • 2010-12-20
      • 2012-04-30
      • 2012-02-26
      • 1970-01-01
      相关资源
      最近更新 更多