question: private static int determineType ( byte [ ] bytes ) { int offset = 0 ; if ( bytes . length >= 3 && ( bytes [ 0 ] & 0xFF ) == 0xEF && ( bytes [ 1 ] & 0xFF ) == 0xBB && ( bytes [ 2 ] & 0xFF ) == 0xBF ) { offset += 3 ; } while ( offset < bytes . length && bytes [ offset ] == ' ' || bytes [ offset ] == '\t' || bytes [ offset ] == '\r' || bytes [ offset ] == '\n' || bytes [ offset ] == '\f' ) { offset ++ ; } return determineType ( new String ( bytes , offset , Math . min ( 8 , bytes . length - offset ) ) ) ; }
target:  Determines the type of a property list by means of the first bytes of its data