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 ; }
Checks to see if there is an id3v2 footer in the file provided to the constructor .