有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

视频在java中如何将字节缓冲区写入一半?

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

是否存在跳过第一个缓冲区长度写入缓冲区的情况?谢谢


共 (2) 个答案

  1. # 1 楼答案

    Sophia,你真的需要包括示例代码,这样人们才能提供帮助,但我从你的标签中看到,你可能在询问NIO的ByteBuffer

    你想做的是通过ByteBuffer.position(int)方法跳过你不想要的内容——ByteBuffer impl中没有魔法,它是一个备份数据存储(字节[]或对操作系统的直接内存引用)和一系列int指针,这些指针指向缓冲区中的概念位置(开始、结束、限制等)。您只需要确保“跳过”不需要的字节,这可以通过移动位置来完成,这样下一个写出整个缓冲区的操作将从位置开始,并转到限制

  2. # 2 楼答案

    我使用以下代码跳过字节缓冲区中的字节:

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