首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >更改InputStream中的索引位置

更改InputStream中的索引位置
EN

Stack Overflow用户
提问于 2010-08-13 15:51:07
回答 1查看 15.1K关注 0票数 7

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

有谁知道怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-13 16:57:49

您可以使用以下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,它是一个从FileRandomAccessFile获取输入的SeekableStream。注意,这个类并不是JAI API的一个提交部分。它可能会在未来的JAI版本中删除或更改。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3474911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档