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

多媒体编程

开发平台:

Visual C++

  1. package com.axiosys.bento4;
  2. import java.io.IOException;
  3. import java.io.RandomAccessFile;
  4. import java.util.ArrayList;
  5. public class AtomList implements AtomParent {
  6.     private final ArrayList atoms = new ArrayList();
  7.     
  8.     public AtomList(String filename) throws IOException, InvalidFormatException {
  9.         RandomAccessFile input = new RandomAccessFile(filename, "r");
  10.         Atom atom;
  11.         do {
  12.             atom = AtomFactory.DefaultFactory.createAtom(input);
  13.             if (atom != null) atoms.add(atom);
  14.         } while (atom != null);
  15.         //input.close(); do not close the input here as some atoms may need to read from it later
  16.     }
  17.     
  18.     public int getChildrenCount() {
  19.         return atoms.size();
  20.     }
  21.     public Atom getChild(int index) {
  22.         return (Atom)atoms.get(index);
  23.     }
  24.     public Atom getChild(int type, int index) {
  25.         return AtomUtils.findChild(atoms, type, index);
  26.     }
  27.     
  28.     public String toString() {
  29.         StringBuffer result = new StringBuffer();
  30.         String sep = "";
  31.         for (int i=0; i<atoms.size(); i++) {
  32.             Atom atom = (Atom)atoms.get(i);
  33.             result.append(atom.toString() + sep);
  34.             sep = "n";
  35.         }
  36.         
  37.         return result.toString();
  38.     }
  39. }