繁体   English   中英

如何在Java中途写入字节缓冲区?

[英]how can I write to the byte buffer half way in java?

假设每次输入流的缓冲区读取1000个字节。 在缓冲区的开头,在实际视频内容之前,有一些开始符号和视频名称,例如100字节。 我不想将它们写入结果缓冲区。 因此,第一次将101-999写入缓冲区。 我希望第二次写1000-1999。 目前,它再次写入0-999,结果视频比实际视频内容多了900个字节。

反正有写写缓冲区跳过第一个缓冲区长度吗? 谢谢!

我使用此代码从ByteBuffer跳过字节:

import java.nio.ByteBuffer;

public class Utility {
  public static void skip(ByteBuffer bb, int skip) {
    bb.position( bb.position() + skip);
  }
}

Sophia,您确实确实需要包括示例代码,以便人们可以提供帮助,但是我从您的标签中看到,您可能会询问NIO的ByteBuffer。

您想要做的是通过ByteBuffer.position(int)方法跳过不需要的内容-ByteBuffer impl中没有任何魔术,它是一个备份数据存储区(可以是byte []或直接存储引用OS)和一系列引用缓冲区中概念位置的int指针(开始,结束,限制等),您只需要确保“跳过”不需要的字节即可,可以通过将位置移到该位置以外的位置来完成操作,以便从位置开始执行下一个写出整个缓冲区的操作并到达极限位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM