public final class IOUtil extends Object
 This class provides static utility methods for input/output operations, particularly buffered copying between sources
 (InputStream, Reader, String and byte[]) and destinations
 (OutputStream, Writer, String and byte[]).
 
 Unless otherwise noted, these copy methods do not flush or close the streams. Often, doing so
 would require making non-portable assumptions about the streams' origin and further use. This means that both
 streams' close() methods must be called after copying. if one omits this step, then the stream resources
 (sockets, file descriptors) are released when the associated Stream is garbage-collected. It is not a good idea to
 rely on this mechanism. For a good overview of the distinction between "memory management" and "resource management",
 see this UnixReview article
 
 For each copy method, a variant is provided that allows the caller to specify the buffer size (the
 default is 4k). As the buffer size can have a fairly large impact on speed, this may be worth tweaking. Often "large
 buffer -> faster" does not hold, even for large data transfers.
 
 For byte-to-char methods, a copy variant allows the encoding to be selected (otherwise the platform
 default is used).
 
 The copy methods use an internal buffer when copying. It is therefore advisable not to
 deliberately wrap the stream arguments to the copy methods in Buffered* streams. For
 example, don't do the following:
 
copy( new BufferedInputStream( in ), new BufferedOutputStream( out ) );
 The rationale is as follows:
 Imagine that an InputStream's read() is a very expensive operation, which would usually suggest wrapping in a
 BufferedInputStream. The BufferedInputStream works by issuing infrequent
 InputStream.read(byte[] b, int off, int len) requests on the underlying InputStream, to fill an
 internal buffer, from which further read requests can inexpensively get their data (until the buffer
 runs out).
 
 However, the copy methods do the same thing, keeping an internal buffer, populated by
 InputStream.read(byte[] b, int off, int len) requests. Having two buffers (or three if the destination stream
 is also buffered) is pointless, and the unnecessary buffer management hurts performance slightly (about 3%, according
 to some simple experiments).
 
| Modifier and Type | Method and Description | 
|---|---|
| static void | bufferedCopy(InputStream input,
            OutputStream output)Deprecated. 
 Buffering streams is actively harmful! See the class description as to why. Use
              copy(InputStream, OutputStream)instead. | 
| static void | close(Channel channel)Closes a channel. | 
| static void | close(InputStream inputStream)Closes the input stream. | 
| static void | close(OutputStream outputStream)Closes the output stream. | 
| static void | close(Reader reader)Closes the reader. | 
| static void | close(Writer writer)Closes the writer. | 
| static boolean | contentEquals(InputStream input1,
             InputStream input2)Compare the contents of two Streams to determine if they are equal or not. | 
| static void | copy(byte[] input,
    OutputStream output)Copy bytes from a  byte[]to anOutputStream. | 
| static void | copy(byte[] input,
    OutputStream output,
    int bufferSize)Copy bytes from a  byte[]to anOutputStream. | 
| static void | copy(byte[] input,
    Writer output)Copy and convert bytes from a  byte[]to chars on aWriter. | 
| static void | copy(byte[] input,
    Writer output,
    int bufferSize)Copy and convert bytes from a  byte[]to chars on aWriter. | 
| static void | copy(byte[] input,
    Writer output,
    String encoding)Copy and convert bytes from a  byte[]to chars on aWriter, using the specified
 encoding. | 
| static void | copy(byte[] input,
    Writer output,
    String encoding,
    int bufferSize)Copy and convert bytes from a  byte[]to chars on aWriter, using the specified
 encoding. | 
| static void | copy(InputStream input,
    OutputStream output)Copy bytes from an  InputStreamto anOutputStream. | 
| static void | copy(InputStream input,
    OutputStream output,
    int bufferSize)Copy bytes from an  InputStreamto anOutputStream. | 
| static void | copy(InputStream input,
    Writer output)Copy and convert bytes from an  InputStreamto chars on aWriter. | 
| static void | copy(InputStream input,
    Writer output,
    int bufferSize)Copy and convert bytes from an  InputStreamto chars on aWriter. | 
| static void | copy(InputStream input,
    Writer output,
    String encoding)Copy and convert bytes from an  InputStreamto chars on aWriter, using the specified
 encoding. | 
| static void | copy(InputStream input,
    Writer output,
    String encoding,
    int bufferSize)Copy and convert bytes from an  InputStreamto chars on aWriter, using the specified
 encoding. | 
| static void | copy(Reader input,
    OutputStream output)Serialize chars from a  Readerto bytes on anOutputStream, and flush theOutputStream. | 
| static void | copy(Reader input,
    OutputStream output,
    int bufferSize)Serialize chars from a  Readerto bytes on anOutputStream, and flush theOutputStream. | 
| static void | copy(Reader input,
    Writer output)Copy chars from a  Readerto aWriter. | 
| static void | copy(Reader input,
    Writer output,
    int bufferSize)Copy chars from a  Readerto aWriter. | 
| static void | copy(String input,
    OutputStream output)Serialize chars from a  Stringto bytes on anOutputStream, and flush theOutputStream. | 
| static void | copy(String input,
    OutputStream output,
    int bufferSize)Serialize chars from a  Stringto bytes on anOutputStream, and flush theOutputStream. | 
| static void | copy(String input,
    Writer output)Copy chars from a  Stringto aWriter. | 
| static byte[] | toByteArray(InputStream input)Get the contents of an  InputStreamas abyte[]. | 
| static byte[] | toByteArray(InputStream input,
           int bufferSize)Get the contents of an  InputStreamas abyte[]. | 
| static byte[] | toByteArray(Reader input)Get the contents of a  Readeras abyte[]. | 
| static byte[] | toByteArray(Reader input,
           int bufferSize)Get the contents of a  Readeras abyte[]. | 
| static byte[] | toByteArray(String input)Get the contents of a  Stringas abyte[]. | 
| static byte[] | toByteArray(String input,
           int bufferSize)Get the contents of a  Stringas abyte[]. | 
| static String | toString(byte[] input)Get the contents of a  byte[]as a String. | 
| static String | toString(byte[] input,
        int bufferSize)Get the contents of a  byte[]as a String. | 
| static String | toString(byte[] input,
        String encoding)Get the contents of a  byte[]as a String. | 
| static String | toString(byte[] input,
        String encoding,
        int bufferSize)Get the contents of a  byte[]as a String. | 
| static String | toString(InputStream input)Get the contents of an  InputStreamas a String. | 
| static String | toString(InputStream input,
        int bufferSize)Get the contents of an  InputStreamas a String. | 
| static String | toString(InputStream input,
        String encoding)Get the contents of an  InputStreamas a String. | 
| static String | toString(InputStream input,
        String encoding,
        int bufferSize)Get the contents of an  InputStreamas a String. | 
| static String | toString(Reader input)Get the contents of a  Readeras a String. | 
| static String | toString(Reader input,
        int bufferSize)Get the contents of a  Readeras a String. | 
public static void copy(InputStream input, OutputStream output) throws IOException
InputStream to an OutputStream.IOExceptionpublic static void copy(InputStream input, OutputStream output, int bufferSize) throws IOException
InputStream to an OutputStream.bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(Reader input, Writer output) throws IOException
Reader to a Writer.IOExceptionpublic static void copy(Reader input, Writer output, int bufferSize) throws IOException
Reader to a Writer.bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(InputStream input, Writer output) throws IOException
InputStream to chars on a Writer. The platform's default
 encoding is used for the byte-to-char conversion.IOExceptionpublic static void copy(InputStream input, Writer output, int bufferSize) throws IOException
InputStream to chars on a Writer. The platform's default
 encoding is used for the byte-to-char conversion.bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(InputStream input, Writer output, String encoding) throws IOException
InputStream to chars on a Writer, using the specified
 encoding.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.IOExceptionpublic static void copy(InputStream input, Writer output, String encoding, int bufferSize) throws IOException
InputStream to chars on a Writer, using the specified
 encoding.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.bufferSize - Size of internal buffer to use.IOExceptionpublic static String toString(InputStream input) throws IOException
InputStream as a String. The platform's default encoding is used for the
 byte-to-char conversion.IOExceptionpublic static String toString(InputStream input, int bufferSize) throws IOException
InputStream as a String. The platform's default encoding is used for the
 byte-to-char conversion.bufferSize - Size of internal buffer to use.IOExceptionpublic static String toString(InputStream input, String encoding) throws IOException
InputStream as a String.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.IOExceptionpublic static String toString(InputStream input, String encoding, int bufferSize) throws IOException
InputStream as a String.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.bufferSize - Size of internal buffer to use.IOExceptionpublic static byte[] toByteArray(InputStream input) throws IOException
InputStream as a byte[].IOExceptionpublic static byte[] toByteArray(InputStream input, int bufferSize) throws IOException
InputStream as a byte[].bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(Reader input, OutputStream output) throws IOException
Reader to bytes on an OutputStream, and flush the
 OutputStream.IOExceptionpublic static void copy(Reader input, OutputStream output, int bufferSize) throws IOException
Reader to bytes on an OutputStream, and flush the
 OutputStream.bufferSize - Size of internal buffer to use.IOExceptionpublic static String toString(Reader input) throws IOException
Reader as a String.IOExceptionpublic static String toString(Reader input, int bufferSize) throws IOException
Reader as a String.bufferSize - Size of internal buffer to use.IOExceptionpublic static byte[] toByteArray(Reader input) throws IOException
Reader as a byte[].IOExceptionpublic static byte[] toByteArray(Reader input, int bufferSize) throws IOException
Reader as a byte[].bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(String input, OutputStream output) throws IOException
String to bytes on an OutputStream, and flush the
 OutputStream.IOExceptionpublic static void copy(String input, OutputStream output, int bufferSize) throws IOException
String to bytes on an OutputStream, and flush the
 OutputStream.bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(String input, Writer output) throws IOException
String to a Writer.IOExceptionpublic static void bufferedCopy(InputStream input, OutputStream output) throws IOException
copy(InputStream, OutputStream) instead.InputStream to an OutputStream, with buffering. This is equivalent
 to passing a BufferedInputStream and BufferedOutputStream to
 copy(InputStream, OutputStream), and flushing the output stream afterwards. The streams are not closed
 after the copy.IOExceptionpublic static byte[] toByteArray(String input) throws IOException
String as a byte[].IOExceptionpublic static byte[] toByteArray(String input, int bufferSize) throws IOException
String as a byte[].bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(byte[] input,
        Writer output)
                 throws IOException
byte[] to chars on a Writer. The platform's default
 encoding is used for the byte-to-char conversion.IOExceptionpublic static void copy(byte[] input,
        Writer output,
        int bufferSize)
                 throws IOException
byte[] to chars on a Writer. The platform's default
 encoding is used for the byte-to-char conversion.bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(byte[] input,
        Writer output,
        String encoding)
                 throws IOException
byte[] to chars on a Writer, using the specified
 encoding.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.IOExceptionpublic static void copy(byte[] input,
        Writer output,
        String encoding,
        int bufferSize)
                 throws IOException
byte[] to chars on a Writer, using the specified
 encoding.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.bufferSize - Size of internal buffer to use.IOExceptionpublic static String toString(byte[] input) throws IOException
byte[] as a String. The platform's default encoding is used for the
 byte-to-char conversion.IOExceptionpublic static String toString(byte[] input, int bufferSize) throws IOException
byte[] as a String. The platform's default encoding is used for the
 byte-to-char conversion.bufferSize - Size of internal buffer to use.IOExceptionpublic static String toString(byte[] input, String encoding) throws IOException
byte[] as a String.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.IOExceptionpublic static String toString(byte[] input, String encoding, int bufferSize) throws IOException
byte[] as a String.encoding - The name of a supported character encoding. See the
            IANA Charset Registry for a list of valid
            encoding types.bufferSize - Size of internal buffer to use.IOExceptionpublic static void copy(byte[] input,
        OutputStream output)
                 throws IOException
byte[] to an OutputStream.IOExceptionpublic static void copy(byte[] input,
        OutputStream output,
        int bufferSize)
                 throws IOException
byte[] to an OutputStream.bufferSize - Size of internal buffer to use.IOExceptionpublic static boolean contentEquals(InputStream input1, InputStream input2) throws IOException
input1 - the first streaminput2 - the second streamIOExceptionpublic static void close(InputStream inputStream)
inputStream - The stream to close.public static void close(Channel channel)
channel - The stream to close.public static void close(OutputStream outputStream)
outputStream - The stream to close.public static void close(Reader reader)
reader - The reader to close.public static void close(Writer writer)
writer - The writer to close.Copyright © 2001–2017 Codehaus Plexus. All rights reserved.