opendap/src/main/java/opendap/dap/HeaderInputStream.java
public int read(byte b[], int off, int len) throws IOException {
        if (len <= 0) {
            return 0;
        }

        int c = read();
        if (c == -1)
            return -1;
        b[off] = (byte) c;

        // We've read one byte successfully, let's try for more
        int i = 1;
        try {
            for (; i < len; i++) {
                c = read();
                if (c == -1) {
                    break;
                }
                b[off + i] = (byte) c;
            }
        } catch (IOException e) {
        }
        return i;
    }
public int read(byte b[], int off, int len) throws IOException {
        if (len <= 0) {
            return 0;
        }

        int c = read();
        if (c == -1)
            return -1;
        b[off] = (byte) c;

        // We've read one byte successfully, let's try for more
        int i = 1;
        try {
            for (; i < len; i++) {
                c = read();
                if (c == -1) {
                    break;
                }
                b[off + i] = (byte) c;
            }
        } catch (IOException e) {
        }
        return i;
    }
public int read ( byte b [ ] , int off , int len ) throws IOException { if ( len <= 0 ) { return 0 ; } int c = read ( ) ; if ( c == - 1 ) return - 1 ; b [ off ] = ( byte ) c ; // We've read one byte successfully, let's try for more
 int i = 1 ; try { for ( ; i < len ; i ++ ) { c = read ( ) ; if ( c == - 1 ) { break ; } b [ off + i ] = ( byte ) c ; } } catch ( IOException e ) { } return i ; }
Reads up to len bytes of data from this input stream into an array of
bytes. This method blocks until some input is available.
Reads up to len bytes of data from this input stream into an array of bytes . This method blocks until some input is available .