UnknownAtom.java
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. package com.axiosys.bento4;
  2. import java.io.DataOutputStream;
  3. import java.io.IOException;
  4. import java.io.RandomAccessFile;
  5. public class UnknownAtom extends Atom {
  6.     private final static int       CHUNK_SIZE = 4096;
  7.     private final RandomAccessFile source;
  8.     private final int              offset;
  9.     
  10.     public UnknownAtom(int type, int size, RandomAccessFile source, int offset) {
  11.         super(type, size, false);
  12.         this.source = source;
  13.         this.offset = offset;
  14.     }
  15.     
  16.     public UnknownAtom(int type, int size, RandomAccessFile source) throws IOException {
  17.         this(type, size, source, (int)source.getFilePointer());
  18.     }
  19.     
  20.     public void writeFields(DataOutputStream stream) throws IOException {
  21.         int position = offset;
  22.         byte[] buffer = new byte[CHUNK_SIZE];
  23.         int toCopy = getPayloadSize();
  24.         while (toCopy > 0) {
  25.             int chunk = toCopy > CHUNK_SIZE ? CHUNK_SIZE : toCopy;
  26.             source.seek(position);
  27.             source.readFully(buffer, 0, chunk);
  28.             stream.write(buffer, 0, chunk);
  29.             toCopy -= chunk;
  30.             position += chunk;
  31.         }
  32.     }
  33. }