当前位置: 首页 > 面试题库 >

更改InputStream中的索引位置

微生良策
2023-03-14
问题内容

我有一个包含密钥的二进制文件,每个密钥之后都有一个与之关联的图像。我想跳过不同的键,但是找不到任何改变输入流中索引位置的方法。我已经看到了该mark()方法,但是它不会在不同的地方跳转。

有人知道该怎么做吗?


问题答案:

long skip(long n)您可以使用一种方法:

跳过并丢弃n此输入流中的数据字节。由于skip种种原因,该方法最终可能会跳过一些较小数量的字节0。这可能是由多种条件引起的;n在跳过字节之前到达文件末尾只是一种可能。返回跳过的实际字节数。如果n为负,则不跳过任何字节。

如记录所示,您不能保证n将跳过字节,因此请始终仔细检查返回的值。请注意,这不允许您“向后跳”,但是如果为markSupported(),则可以reset()先跳,
然后再 skip移至较早的位置。

其他选择

您也可以使用java.io.RandomAccessFile,顾名思义,它允许使用其seek(long pos)方法进行随机访问。

您提到了图像,因此,如果您使用的是Java Advanced
Imaging
,则另一个可能的选项是com.sun.media.jai.codec.FileSeekableStream,它是一个SeekableStreamFile或输入的输入RandomAccessFile。请注意,此类不是JAI
API的已提交部分。在以后的JAI版本中,可能会删除或更改它。



 类似资料:
  • 附注。Link1和link2是我第二个问题的相关答案。不过,他们并没有回答我的问题。

  • 问题内容: 我需要更改索引中的分片数量。索引很大,为了达到测试目的,我可能不得不将配置更改10-15次才能满意。是否有开箱即用的工具提供这种功能?或最简单的方法是做到这一点? 问题答案: 无论是Perl的和Ruby客户直接支持重建索引。 在Perl中,您可以执行以下操作: 在Clinton Gormley 的帖子中查找更多信息。 在Ruby中,您可以执行以下操作: 在相关的 Tyre 提交中找到更

  • 我的模板中当前有以下代码: 其中是测试套件的名称,是该测试套件中失败测试用例的列表。我想知道如何才能改变到类似于其中在循环的每次迭代中递增。 UPDATE 在尝试@Gocht的答案后,我有以下代码: 在我的模板标签/get_percentage.py文件中 在我的模板中 我遇到了“字符串索引超出范围”错误。我试图寻找可能的原因,但没有一个答案与自定义模板标记相关。

  • 问题内容: 我正在考虑使用Elasticsearch建立排名。如果我索引根据分数排序的元素列表。我可以按元素名称查询并获得其在索引上的位置吗? 例如我建立一个包含两个元素的索引: “ Element1”,得分:8“ Element2”,得分:7“ Element3”,得分:10 当我通过“ Element2”查询时,我想获得position = 3 问题答案: Elasticsearch在实际收集

  • 我有以下代码。我想知道修改后的数据帧是否可以从0,1,2开始......等等,就像熊猫上的常规索引一样。 df2现在在哪- 如果我想访问df2在一些常规索引约定从0... n,我不能用这种方法。还有其他方法可以做到吗? 提前感谢。

  • 我有一个web应用程序,它使用JSF中的数据表和Primefaces特性,以便它可以执行一些更动态的功能。在dataTable中,我有包含可编辑数据的行。我的最终目标是让用户能够编辑数据,单击save按钮,update语句将被执行以替换数据库中存在的内容。问题是,此时我不知道如何检测ArrayList中对象的更改。 我已经杀一儆百,看看有没有人能解决我的困境。听我说,我有一个代码制作了一个data