question: int readResults ( final byte [ ] b , final int bPos , final int bAvail , final Context context ) { if ( context . buffer != null ) { final int len = Math . min ( available ( context ) , bAvail ) ; System . arraycopy ( context . buffer , context . readPos , b , bPos , len ) ; context . readPos += len ; if ( context . readPos >= context . pos ) { context . buffer = null ; } return len ; } return context . eof ? EOF : 0 ; }
target:  Extracts buffered data into the provided byte[] array, starting at position bPos, up to a maximum of bAvail bytes. Returns how many bytes were actually extracted. <p> Package protected for access from I/O streams.