gpt4 book ai didi

java - 从 Java FileInputStream 中读取行而不会丢失我的位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:44 25 4
gpt4 key购买 nike

我有一个 FileInputStream。我想从中读取面向字符的按行数据,直到找到特定的分隔符。然后我想将 FileInputStream 传递给需要 InputStream 的库,当前位置设置在分隔符行结束后立即

我可以使用 BufferedReader 一次一行地浏览文件,一切都很好。但是,这会留下底层文件流

BufferedReader br = new BufferedReader(new InputStreamReader(myFileStream))

在一个不确定的位置——BufferedReader 必须向前看,我不知道多远,而且 AFAICT 没有办法告诉 BufferedReader 将基础流倒回到最后返回的行之后。

this最好的解决方案?拥有一个 ReaderInputStream(BufferedReader(InputStreamReader(FileInputStream))) 似乎很疯狂,但这是我见过的避免自己滚动的唯一方法。如果可能的话,我真的很想避免编写自己的整个流式读取行实现。

最佳答案

您不能取消缓冲缓冲的阅读器。您必须在应用程序的整个生命周期中使用相同的包装器。在你的情况下我会使用

DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));

String line = dis.readLine();

虽然 DataInputStream.readLine() 已被弃用,但如果您小心的话,它可能对您有用。否则,您唯一的选择是自己读取字节并使用所需的编码解析文本。

关于java - 从 Java FileInputStream 中读取行而不会丢失我的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19067690/

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