我有一个文件输入流。我想从中读取面向字符的逐行数据,直到找到特定的分隔符。然后,我想将 FileInputStream(当前位置设置在分隔符行末尾之后立即设置)传递给需要 InputStream 的库。
我可以使用 BufferedReader 一次遍历文件一行,一切正常。但是,这会将底层文件流留在
BufferedReader br = new BufferedReader(new InputStreamReader(myFileStream))
在一个不确定的位置—— BufferedReader 必须向前看,我不知道多远,而且 AFAICT 没有办法告诉 BufferedReader 将底层流倒回到最后返回的行之后。
这是最好的解决方案吗?拥有一个似乎很疯狂,ReaderInputStream(BufferedReader(InputStreamReader(FileInputStream)))
但这是我见过的唯一避免自己滚动的方法。如果可能的话,我真的很想避免编写我自己的整个流式读取行实现。