Java:在read()中阻塞的FileInputStream,而其他线程下载文件的剩余部分?

Reu*_*ton 5 java io inputstream

我有一个基于FFmpeg的视频播放应用程序,可以播放来自任意InputStream的内容.

应用程序能够播放正在下载的视频文件非常重要.我似乎需要的是一种特殊的FileInputStream,它将(a)与下载线程共享文件访问,并且(b)如果到达下载部分的末尾,将静静地阻塞,直到有更多内容可用.

(a)由于RandomAccessFile似乎很容易,但我对(b)有点困惑.我可能会破解一些可行的东西,但我想知道是否有一种标准的方法来实现它.仔细考虑它会让我觉得我可能会遗漏一些明显的东西.

有什么想法吗?你们这样做怎么样?

Reu*_*ton 0

我相信这个问题没有真正的答案。我有一些可行的东西,但对我来说它看起来像是不优雅的黑客行为。也许有时这是不可避免的。