android/guava/src/com/google/common/io/ReaderInputStream.java
private int drain(byte[] b, int off, int len) {
    int remaining = Math.min(len, byteBuffer.remaining());
    byteBuffer.get(b, off, remaining);
    return remaining;
  }
private int drain(byte[] b, int off, int len) {
    int remaining = Math.min(len, byteBuffer.remaining());
    byteBuffer.get(b, off, remaining);
    return remaining;
  }
private int drain ( byte [ ] b , int off , int len ) { int remaining = Math . min ( len , byteBuffer . remaining ( ) ) ; byteBuffer . get ( b , off , remaining ) ; return remaining ; }
Copy as much of the byte buffer into the output array as possible, returning the (positive)
number of characters copied.
Copy as much of the byte buffer into the output array as possible returning the ( positive ) number of characters copied .