private void readFile ( InputStream is ) throws IOException { StreamHelper . skip ( is , 64 ) ; int index = 64 ; ArrayList < Integer > offsetList = new ArrayList < Integer > ( ) ; List < String > nameList = new ArrayList < String > ( ) ; while ( true ) { byte [ ] table = new byte [ 32 ] ; is . read ( table ) ; index += 32 ; int offset = PEPUtility . getInt ( table , 0 ) ; offsetList . add ( Integer . valueOf ( offset ) ) ; if ( offset == 0 ) { break ; } nameList . add ( PEPUtility . getString ( table , 5 ) . toUpperCase ( ) ) ; } StreamHelper . skip ( is , offsetList . get ( 0 ) . intValue ( ) - index ) ; for ( int offsetIndex = 1 ; offsetIndex < offsetList . size ( ) - 1 ; offsetIndex ++ ) { String name = nameList . get ( offsetIndex - 1 ) ; Class < ? extends Table > tableClass = TABLE_CLASSES . get ( name ) ; if ( tableClass == null ) { tableClass = Table . class ; } Table table ; try { table = tableClass . newInstance ( ) ; } catch ( Exception ex ) { throw new RuntimeException ( ex ) ; } m_tables . put ( name , table ) ; table . read ( is ) ; } }
Reads a PEP file from the input stream .