gpt4 book ai didi

java - FileInputStream.read() 什么时候阻塞?

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:02 24 4
gpt4 key购买 nike

问题类似于下面两个问题。

但我还是不能完全理解。

到目前为止,我认为以下代码中的 read() 方法将由于空文件“test.txt”而阻塞。

FileInputStream fis = new FileInputStream("c:/test.txt");
System.out.println(fis.read());
System.out.println("to the end");

实际上它会打印-1,我想知道为什么。

javadoc 说如果没有输入可用则此方法阻塞

没有可用的输入”是什么意思?

谢谢。

最佳答案

您的问题的答案可以在 JavaDoc for .read() 中找到:

This method blocks if no input is yet available.

Returns: the next byte of data, or -1 if the end of the file is reached.

所以,一个空文件会让你立即得到一个-1(而不是read()阻塞)

  • 输入可用,因为文件存在
  • ...但是它是空的,所以立即结束。

...还没有可用的输入... 情况可能会发生,例如。当一个人要从命名管道而不是普通文件中读取时,管道的另一端还没有写入任何内容。

干杯,

关于java - FileInputStream.read() 什么时候阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15218750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com