code: public byte[] getFrameBytes()
  	{
  		int length = getFrameLength();
  		int bytesWritten = 0;
  		byte[] flags = getFlagBytes();
  		byte[] extra = getExtraDataBytes();
  		byte[] b;
  
  		b = new byte[length];
  
  		System.arraycopy(id.getBytes(), 0, b, 0, id.length());
  		bytesWritten += id.length();
  		System.arraycopy(Helpers.convertIntToDWord(length), 0, b, bytesWritten, 4);
  		bytesWritten += 4;
  		System.arraycopy(flags, 0, b, bytesWritten, flags.length);
  		bytesWritten += flags.length;
  		System.arraycopy(extra, 0, b, bytesWritten, extra.length);
  		bytesWritten += extra.length;
  		System.arraycopy(frameData, 0, b, bytesWritten, frameData.length);
  		bytesWritten += frameData.length;
  
  		return b;
  	}
docs: Returns a byte array representation of this frame that can be written
  to a file.  Includes the header and data.
  
  @return a binary representation of this frame to be written to a file