您不一定必须多次读取InputStream。有些实现支持它,有些则不支持。您正在做的是检查markSupported方法,这实际上是一个指标,如果您可以读取相同的流两次,但是却忽略了结果。您必须调用该方法以查看是否可以读取流两次,如果不能读取,请进行其他安排。
编辑(回应评论):当我写下答案时,我的“其他安排”是获得一个新的InputStream。但是,当我读到您对您想做什么的问题的评论时,我不确定是否有可能。对于该操作的基础知识,您可能需要RandomAccessFile(至少这是我的第一个猜测,如果可行,那将是最简单的方法)-但是,您将遇到文件访问问题。您有一个正在积极地写入文件的应用程序,而另一个正在读取该文件的应用程序则会遇到问题-
确切的问题将取决于操作系统,因此无论哪种解决方案都需要进行更多测试。我建议在此问题上提出一个关于SO的单独问题,尝试过该问题的人也许可以为您提供更多见解。



