📄 ioutil.java
字号:
* Charset Registry</a> for a list of valid encoding types. * @param bufferSize Size of internal buffer to use. */ public static String toString( final InputStream input, final String encoding, final int bufferSize ) throws IOException { final StringWriter sw = new StringWriter(); copy( input, sw, encoding, bufferSize ); return sw.toString(); } /////////////////////////////////////////////////////////////// // InputStream -> byte[] /** * Get the contents of an <code>InputStream</code> as a <code>byte[]</code>. */ public static byte[] toByteArray( final InputStream input ) throws IOException { return toByteArray( input, DEFAULT_BUFFER_SIZE ); } /** * Get the contents of an <code>InputStream</code> as a <code>byte[]</code>. * @param bufferSize Size of internal buffer to use. */ public static byte[] toByteArray( final InputStream input, final int bufferSize ) throws IOException { final ByteArrayOutputStream output = new ByteArrayOutputStream(); copy( input, output, bufferSize ); return output.toByteArray(); } /////////////////////////////////////////////////////////////// // Derived copy methods // Reader -> * /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// // Reader -> OutputStream /** * Serialize chars from a <code>Reader</code> to bytes on an <code>OutputStream</code>, and * flush the <code>OutputStream</code>. */ public static void copy( final Reader input, final OutputStream output ) throws IOException { copy( input, output, DEFAULT_BUFFER_SIZE ); } /** * Serialize chars from a <code>Reader</code> to bytes on an <code>OutputStream</code>, and * flush the <code>OutputStream</code>. * @param bufferSize Size of internal buffer to use. */ public static void copy( final Reader input, final OutputStream output, final int bufferSize ) throws IOException { final OutputStreamWriter out = new OutputStreamWriter( output ); copy( input, out, bufferSize ); // NOTE: Unless anyone is planning on rewriting OutputStreamWriter, we have to flush // here. out.flush(); } /////////////////////////////////////////////////////////////// // Reader -> String /** * Get the contents of a <code>Reader</code> as a String. */ public static String toString( final Reader input ) throws IOException { return toString( input, DEFAULT_BUFFER_SIZE ); } /** * Get the contents of a <code>Reader</code> as a String. * @param bufferSize Size of internal buffer to use. */ public static String toString( final Reader input, final int bufferSize ) throws IOException { final StringWriter sw = new StringWriter(); copy( input, sw, bufferSize ); return sw.toString(); } /////////////////////////////////////////////////////////////// // Reader -> byte[] /** * Get the contents of a <code>Reader</code> as a <code>byte[]</code>. */ public static byte[] toByteArray( final Reader input ) throws IOException { return toByteArray( input, DEFAULT_BUFFER_SIZE ); } /** * Get the contents of a <code>Reader</code> as a <code>byte[]</code>. * @param bufferSize Size of internal buffer to use. */ public static byte[] toByteArray( final Reader input, final int bufferSize ) throws IOException { ByteArrayOutputStream output = new ByteArrayOutputStream(); copy( input, output, bufferSize ); return output.toByteArray(); } /////////////////////////////////////////////////////////////// // Derived copy methods // String -> * /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// // String -> OutputStream /** * Serialize chars from a <code>String</code> to bytes on an <code>OutputStream</code>, and * flush the <code>OutputStream</code>. */ public static void copy( final String input, final OutputStream output ) throws IOException { copy( input, output, DEFAULT_BUFFER_SIZE ); } /** * Serialize chars from a <code>String</code> to bytes on an <code>OutputStream</code>, and * flush the <code>OutputStream</code>. * @param bufferSize Size of internal buffer to use. */ public static void copy( final String input, final OutputStream output, final int bufferSize ) throws IOException { final StringReader in = new StringReader( input ); final OutputStreamWriter out = new OutputStreamWriter( output ); copy( in, out, bufferSize ); // NOTE: Unless anyone is planning on rewriting OutputStreamWriter, we have to flush // here. out.flush(); } /////////////////////////////////////////////////////////////// // String -> Writer /** * Copy chars from a <code>String</code> to a <code>Writer</code>. */ public static void copy( final String input, final Writer output ) throws IOException { output.write( input ); } /////////////////////////////////////////////////////////////// // String -> byte[] /** * Get the contents of a <code>String</code> as a <code>byte[]</code>. */ public static byte[] toByteArray( final String input ) throws IOException { return toByteArray( input, DEFAULT_BUFFER_SIZE ); } /** * Get the contents of a <code>String</code> as a <code>byte[]</code>. * @param bufferSize Size of internal buffer to use. */ public static byte[] toByteArray( final String input, final int bufferSize ) throws IOException { ByteArrayOutputStream output = new ByteArrayOutputStream(); copy( input, output, bufferSize ); return output.toByteArray(); } /////////////////////////////////////////////////////////////// // Derived copy methods // byte[] -> * /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// // byte[] -> Writer /** * Copy and convert bytes from a <code>byte[]</code> to chars on a * <code>Writer</code>. * The platform's default encoding is used for the byte-to-char conversion. */ public static void copy( final byte[] input, final Writer output ) throws IOException { copy( input, output, DEFAULT_BUFFER_SIZE ); } /** * Copy and convert bytes from a <code>byte[]</code> to chars on a * <code>Writer</code>. * The platform's default encoding is used for the byte-to-char conversion. * @param bufferSize Size of internal buffer to use. */ public static void copy( final byte[] input, final Writer output, final int bufferSize ) throws IOException { final ByteArrayInputStream in = new ByteArrayInputStream( input ); copy( in, output, bufferSize ); } /** * Copy and convert bytes from a <code>byte[]</code> to chars on a * <code>Writer</code>, using the specified encoding. * @param encoding The name of a supported character encoding. See the * <a href="http://www.iana.org/assignments/character-sets">IANA * Charset Registry</a> for a list of valid encoding types. */ public static void copy( final byte[] input, final Writer output, final String encoding ) throws IOException { final ByteArrayInputStream in = new ByteArrayInputStream( input ); copy( in, output, encoding ); } /** * Copy and convert bytes from a <code>byte[]</code> to chars on a * <code>Writer</code>, using the specified encoding. * @param encoding The name of a supported character encoding. See the * <a href="http://www.iana.org/assignments/character-sets">IANA * Charset Registry</a> for a list of valid encoding types. * @param bufferSize Size of internal buffer to use. */ public static void copy( final byte[] input, final Writer output, final String encoding, final int bufferSize ) throws IOException { final ByteArrayInputStream in = new ByteArrayInputStream( input ); copy( in, output, encoding, bufferSize ); } /////////////////////////////////////////////////////////////// // byte[] -> String /** * Get the contents of a <code>byte[]</code> as a String. * The platform's default encoding is used for the byte-to-char conversion. */ public static String toString( final byte[] input ) throws IOException { return toString( input, DEFAULT_BUFFER_SIZE ); } /** * Get the contents of a <code>byte[]</code> as a String. * The platform's default encoding is used for the byte-to-char conversion. * @param bufferSize Size of internal buffer to use. */ public static String toString( final byte[] input, final int bufferSize ) throws IOException { final StringWriter sw = new StringWriter(); copy( input, sw, bufferSize ); return sw.toString(); } /** * Get the contents of a <code>byte[]</code> as a String. * @param encoding The name of a supported character encoding. See the * <a href="http://www.iana.org/assignments/character-sets">IANA * Charset Registry</a> for a list of valid encoding types. */ public static String toString( final byte[] input, final String encoding ) throws IOException { return toString( input, encoding, DEFAULT_BUFFER_SIZE ); } /** * Get the contents of a <code>byte[]</code> as a String. * @param encoding The name of a supported character encoding. See the * <a href="http://www.iana.org/assignments/character-sets">IANA * Charset Registry</a> for a list of valid encoding types. * @param bufferSize Size of internal buffer to use. */ public static String toString( final byte[] input, final String encoding, final int bufferSize ) throws IOException { final StringWriter sw = new StringWriter(); copy( input, sw, encoding, bufferSize ); return sw.toString(); } /////////////////////////////////////////////////////////////// // byte[] -> OutputStream /** * Copy bytes from a <code>byte[]</code> to an <code>OutputStream</code>. */ public static void copy( final byte[] input, final OutputStream output ) throws IOException { copy( input, output, DEFAULT_BUFFER_SIZE ); } /** * Copy bytes from a <code>byte[]</code> to an <code>OutputStream</code>. * @param bufferSize Size of internal buffer to use. */ public static void copy( final byte[] input, final OutputStream output, final int bufferSize ) throws IOException { output.write( input ); } /** * Compare the contents of two Streams to determine if they are equal or not. * * @param input1 the first stream * @param input2 the second stream * @return true if the content of the streams are equal or they both don't exist, false otherwise */ public static boolean contentEquals( final InputStream input1, final InputStream input2 ) throws IOException { final InputStream bufferedInput1 = new BufferedInputStream( input1 ); final InputStream bufferedInput2 = new BufferedInputStream( input2 ); int ch = bufferedInput1.read(); while( -1 != ch ) { final int ch2 = bufferedInput2.read(); if( ch != ch2 ) { return false; } ch = bufferedInput1.read(); } final int ch2 = bufferedInput2.read(); if( -1 != ch2 ) { return false; } else { return true; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -