code: private boolean checkFooter(RandomAccessInputStream raf, int location) throws IOException
  	{
  		raf.seek(location);
  		byte[] buf = new byte[FOOT_SIZE];
  
  		if (raf.read(buf) != FOOT_SIZE)
  		{
  			throw new IOException("Error encountered finding id3v2 footer");
  		}
  
  		String result = new String(buf, ENC_TYPE);
  		if (result.substring(0, TAG_START.length()).equals(TAG_START))
  		{
  			if ((((int)buf[3]&0xFF) != 0xff) && (((int)buf[4]&0xFF) != 0xff))
  			{
  				if (((int)buf[6]&0x80)==0 && ((int)buf[7]&0x80)==0 && ((int)buf[8]&0x80)==0 && ((int)buf[9]&0x80)==0)
  				{
  					return true;
  				}
  			}
  		}
  
  		return false;
  	}
docs: Checks to see if there is an id3v2 footer in the file provided to the
  constructor.
  
  @param location where the footer should be located in the file
  @return true if an id3v2 footer exists in the file
  @exception FileNotFoundException if an error occurs
  @exception IOException if an error occurs