### Environment

* Dubbo version: master branch latest
* Operating System version: all
* Java version: 1.8

### Step to reproduce this issue
1. start StreamUtils UT
2. using `lsof test-class/StreamUtilsTest.txt` to check opened file handle

### Expected Result
after running all the UT, there shouldn't be any opened handles left

### Actual Result
several file handles left

### How to fix
- `overwrite` the `close` method of `InputStream` constructed in `limitedInputStream` and `markSupportedInputStream`
- `close` the InputStream in corresponding UT
}
    @Test(expected = IOException.class)
    public void testMarkInputSupport() throws IOException {
        InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
        is = StreamUtils.markSupportedInputStream(new PushbackInputStream(is), 1);
        is.mark(1);
        int read = is.read();
        assertThat(read, is((int) '0'));
        is.skip(1);
        is.read();
    }
    @Test
    public void testSkipForOriginMarkSupportInput() {
        InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
        InputStream newIs = StreamUtils.markSupportedInputStream(is, 1);
        assertThat(newIs, is(is));
    }
    @Test(expected = NullPointerException.class)
    public void testReadEmptyByteArray() throws IOException {
        InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
        is = StreamUtils.limitedInputStream(is, 2);
        is.read(null, 0, 1);
    }
    @Test(expected = IndexOutOfBoundsException.class)
    public void testReadWithWrongOffset() throws IOException {
        InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
        is = StreamUtils.limitedInputStream(is, 2);
        is.read(new byte[1], -1, 1);
    }
}