public static InputStream toBufferedInputStream(InputStream input) {
        return new BufferedInputStream(input);
    }
Fetches entire contents of an <code>InputStream</code> and represent
same data as result InputStream.
<p>
This method is useful where,
<ul>
<li>Source InputStream is slow.</li>
<li>It has network resources associated, so we cannot keep it open for
long time.</li>
<li>It has network timeout associated.</li>
</ul>
It can be used in favor of {@link #toByteArray(InputStream)}, since it
avoids unnecessary allocation and copy of byte[].<br>
This method buffers the input internally, so there is no need to use a
<code>BufferedInputStream</code>.

@param input Stream to be fully buffered.
@return A fully buffered stream.
@since 2.0
pay-java-common/src/main/java/com/egzosn/pay/common/util/IOUtils.java