question: public void read ( byte [ ] buf , int offset , int len , int skip ) { if ( ( buf . length - offset ) < len ) { throw new IllegalArgumentException ( "Buffer size of " + buf . length + " is too small for a read of " + len + " bytes" ) ; } if ( ( available - skip ) < len ) { throw new IllegalStateException ( "Not enough data to read" ) ; } System . arraycopy ( databuf , skipped + skip , buf , offset , len ) ; }
target:  Read data from the buffer.