[英]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.