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

Java OutputStream跳过(偏移)

方兴旺
2023-03-14
问题内容

我正在尝试编写一个具有File对象,offset和字节数组参数的函数,并将该字节数组写入Java中的File对象。

所以功能看起来像

public void write(File file, long offset, byte[] data)

但是问题是offset参数是long类型,所以我不能使用OutputStream的write()函数,该函数将整数作为偏移量。

与InputStream的skip(long)不同,似乎OutputStream无法跳过文件的前几个字节。

有解决这个问题的好方法吗?

谢谢。


问题答案:
try {
   FileOutputStream out = new FileOutputStream(file);
   try {
       FileChannel ch = out.getChannel();
       ch.position(offset);
       ch.write(ByteBuffer.wrap(data));
   } finally {
       out.close();
   } 
} catch (IOException ex) {
    // handle error
}


 类似资料:
  • 我正在使用Kafka2.0版和java消费者API来消费来自一个主题的消息。我们使用的是一个单节点Kafka服务器,每个分区有一个使用者。我注意到消费者正在丢失一些消息。场景是:消费者投票主题。我为每个线程创建了一个消费者。获取消息并将其交给处理程序来处理消息。然后使用“至少一次”的Kafka消费者语义来提交Kafka偏移量来提交偏移量。同时,我有另一个消费者使用不同的group-id运行。在这个

  • 本文向大家介绍C#跳过而,包括了C#跳过而的使用技巧和注意事项,需要的朋友参考一下 示例 SkipWhile() 用于排除元素,直到第一个不匹配为止(这对大多数人来说可能很直观)            

  • 问题内容: 我用freemarker渲染对象列表: 但是某些项目具有item.value null会引发异常: 我希望该freemarker呈现“ null”或不显示任何内容,并继续发送邮件,而不是对此进行阻止 我总是可以先检查列表,然后再将其发送到freemarker,但是如果我可以避免此步骤,那就更好了 问题答案: 您应该在模板中检查该值是否丢失,然后打印对接收者有意义的内容(“ null”对

  • 我正在使用Maven 2.2.1,为了构建我的项目,我使用了以下命令 但是,构建失败了,说它找不到一个工件。然而,当我使用: 一切正常。 到目前为止,我一直认为这两个命令是等效的。然而,这个链接似乎表明,Dmaven。测验skip=true也会跳过编译测试用例。 然而,这仍然不能向我解释为什么一个命令有效,而另一个命令无效。如果有人能向我解释这一点,我将不胜感激。

  • 今天在运行我的应用程序时,我在logcat上看到这样一条消息:“跳过了33帧。应用程序可能在其主线程中做了太多的工作。”。第二部分与我无关,因为当显示此消息时,我的应用程序确实在运行。但同时它说“跳过了33帧”。。这是否意味着屏幕视图会像视频一样逐帧显示。!!!

  • 我正在寻找一种方法来跳过多构建项目中某个项目的测试。我不想使用gradle构建-x测试,因为这样它将跳过所有子项目的测试。 根 子P1 build.gradle 构建。格拉德尔 构建。格拉德尔 我只想跳过“Sub P3”的测试 我可以将项目(子P3)生成文件配置为跳过测试吗?