public static void copy(InputStream input, Writer output, String encoding) throws IOException {
        copy(input, output, Charsets.toCharset(encoding));
    }
Copy bytes from an <code>InputStream</code> to chars on a
<code>Writer</code> using the specified character encoding.
<p>
This method buffers the input internally, so there is no need to use a
<code>BufferedInputStream</code>.
<p>
Character encoding names can be found at
<a href="http://www.iana.org/assignments/character-sets">IANA</a>.
<p>
This method uses {@link InputStreamReader}.

@param input    the <code>InputStream</code> to read from
@param output   the <code>Writer</code> to write to
@param encoding the encoding to use, null means platform default
@throws NullPointerException        if the input or output is null
@throws IOException                 if an I/O error occurs
@throws UnsupportedCharsetException thrown instead of {@link UnsupportedEncodingException} in version 2.2 if the encoding is not
                                    supported.
@since 1.1
pay-java-common/src/main/java/com/egzosn/pay/common/util/IOUtils.java