当前位置: 首页 > 知识库问答 >
问题:

从Java FileInputStream读取行而不丢失位置

奚高扬
2023-03-14

我有一个FileInputStream。我希望从中读取面向字符的行数据,直到找到特定的分隔符。然后我想将FileInputStream(当前位置设置在分隔符行末尾之后)传递给需要InputStream的库。

我可以使用BufferedReader一次遍历一行文件,一切都很好。但是,这会将底层文件流保留在

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

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

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

共有1个答案

彭令秋
2023-03-14

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

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

String line = dis.readLine();

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

 类似资料:
  • 问题内容: 我想使用JavaScript强制文本框的值小写。我已经尝试过下面的代码,但是每次您按一个键,光标就会跳到输入的末尾。如何避免这种情况? 问题答案: $(“#beLowerCase”).on(‘input’, function(){ 这实际上也适用于CSS: 服务器可以照顾实际的下壳体…

  • 我正在使用OS X,我的Excel工作簿中有一些数据,格式为数字(这里是指向Excel中数据的Dropbox链接) 现在,我正尝试使用openpyxl在Python中导入它们: 输出: 1) “时间”正确解读为日期时间。时间对象 2) 但“价格”时间序列,读作浮动,似乎被截断。。。 而不是206.1799,这也是Excel(单元格B19)中的显示方式。 有解决办法吗?谢谢你的关注。

  • 现在我有一个打开手机摄像头应用程序的意图,允许用户拍照,然后带着新图像回到我的应用程序。有了这个,它返回一个位图。为了获得图片的Uri,以便我可以将ImageView设置为它,我相信我必须先将其保存到存储。唯一的问题是当我的应用程序打开它时,图像质量非常差。在我必须压缩的部分,我保持了100的质量,所以我不确定我做错了什么。 以下是我如何启动照相机的意图: 以下是我如何处理它: 对于switchT

  • 在我的Python3.7中,我想阅读DICOM。但我面临这样的通知: notimplementederror:此传输语法JPEG 2000图像压缩(仅无损),无法读取,因为枕头缺少JPEG 2000解码器插件。 我试过这个解决方案,但anaconda prompt给了我这个: 失败

  • 我试图通过使用命令“java postfix 错误: 请在java.util.scanner.throwfor(未知源) 在java.util.scanner.next(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.scanner.nextInt(未知源) 在java.util.sca

  • 问题内容: 我正在使用JavaScript从隐藏字段中提取值并将其显示在文本框中。隐藏字段中的值被编码。 例如, 被拉入 通过一些jQuery从隐藏字段中获取值(在这一点上,我失去了编码): 问题是,当我从隐藏字段读取内容时,JavaScript似乎丢失了编码。我不希望值是。我希望保留原义。 是否存在将对字符串进行HTML编码的JavaScript库或jQuery方法? 问题答案: 编辑: 此答案