public InputStream readInputStream()

in hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/Hessian2Input.java [3483:3531]


    public InputStream readInputStream()
            throws IOException {
        int tag = read();

        switch (tag) {
            case 'N':
                return null;

            case BC_BINARY:
            case BC_BINARY_CHUNK:
            case 'b': //maybe it's a mistype of BC_BINARY_CHUNK
                _isLastChunk = tag == BC_BINARY;
                _chunkLength = (read() << 8) + read();
                break;

            case 0x20:
            case 0x21:
            case 0x22:
            case 0x23:
            case 0x24:
            case 0x25:
            case 0x26:
            case 0x27:
            case 0x28:
            case 0x29:
            case 0x2a:
            case 0x2b:
            case 0x2c:
            case 0x2d:
            case 0x2e:
            case 0x2f:
                _isLastChunk = true;
                _chunkLength = tag - 0x20;
                break;

            case 0x34:
            case 0x35:
            case 0x36:
            case 0x37:
                _isLastChunk = true;
                _chunkLength = (tag - 0x34) * 256 + read();
                break;

            default:
                throw expect("binary", tag);
        }

        return new ReadInputStream();
    }