我正在用Java阅读输入流。一旦在输入流中到达文件末尾,该流将关闭,并且我无法再次使用同一流。在我对同一流进行进一步处理之前,有什么方法可以保持流打开。

最佳答案

流不应该仅仅因为您读到流的末尾而自动关闭。您可能应该能够一开始就使用mark(),然后调用reset()返回标记。但是,这取决于流是否支持。

如果您使用的是文件,则可能要考虑使用RandomAccessFile。如果它是来自网络的流,则可能没有“倒带”的概念-在这种情况下,您可能应该首先读取所有数据并将其复制到ByteArrayOutputStream:然后可以将其转换为字节数组,然后创建尽可能多的ByteArrayInputStream,并由相同的数据支持。

10-07 12:40