我想知道,当我们从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 会做什么?它会等到它获得新值(或发送者发送任何内容)还是会读取相同的值并打印相同的值?或者它会抛出异常?请帮忙。
javadoc 说:
此方法将一直阻止,直到输入数据可用、检测到文件结尾或引发异常。
因此,根据文档,除非发送方关闭流,否则它将阻塞,直到数据可用。