org.springframework.util

## Class StreamUtils

- java.lang.Object
- - org.springframework.util.StreamUtils

-     public abstract class StreamUtils
      extends Object

  Simple utility methods for dealing with streams. The copy methods of this class are similar to those defined in `FileCopyUtils` except that all affected streams are left open when done. All copy methods use a block size of 4096 bytes.

  Mainly for use within the framework, but also useful for application code.

  Since:
    3.2.2
  Author:
    Juergen Hoeller, Phillip Webb
  See Also:
    `FileCopyUtils`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BUFFER_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StreamUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `copy(byte[] in, OutputStream out)` Copy the contents of the given byte array to the given OutputStream.
    `static int` | `copy(InputStream in, OutputStream out)` Copy the contents of the given InputStream to the given OutputStream.
    `static void` | `copy(String in, Charset charset, OutputStream out)` Copy the contents of the given String to the given output OutputStream.
    `static byte[]` | `copyToByteArray(InputStream in)` Copy the contents of the given InputStream into a new byte array.
    `static String` | `copyToString(InputStream in, Charset charset)` Copy the contents of the given InputStream into a String.
    `static InputStream` | `nonClosing(InputStream in)` Returns a variant of the given `InputStream` where calling `close()` has no effect.
    `static OutputStream` | `nonClosing(OutputStream out)` Returns a variant of the given `OutputStream` where calling `close()` has no effect.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### BUFFER_SIZE

          public static final int BUFFER_SIZE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### StreamUtils

          public StreamUtils()

  - ### Method Detail

    - #### copyToByteArray

          public static byte[] copyToByteArray(InputStream in)
                                        throws IOException

      Copy the contents of the given InputStream into a new byte array. Leaves the stream open when done.
      Parameters:
        `in` - the stream to copy from
      Returns:
        the new byte array that has been copied to
      Throws:
        `IOException` - in case of I/O errors

    - #### copyToString

          public static String copyToString(InputStream in,
                                            Charset charset)
                                     throws IOException

      Copy the contents of the given InputStream into a String. Leaves the stream open when done.
      Parameters:
        `in` - the InputStream to copy from
      Returns:
        the String that has been copied to
      Throws:
        `IOException` - in case of I/O errors

    - #### copy

          public static void copy(byte[] in,
                                  OutputStream out)
                           throws IOException

      Copy the contents of the given byte array to the given OutputStream. Leaves the stream open when done.
      Parameters:
        `in` - the byte array to copy from
        `out` - the OutputStream to copy to
      Throws:
        `IOException` - in case of I/O errors

    - #### copy

          public static void copy(String in,
                                  Charset charset,
                                  OutputStream out)
                           throws IOException

      Copy the contents of the given String to the given output OutputStream. Leaves the stream open when done.
      Parameters:
        `in` - the String to copy from
        `charset` - the Charset
        `out` - the OutputStream to copy to
      Throws:
        `IOException` - in case of I/O errors

    - #### copy

          public static int copy(InputStream in,
                                 OutputStream out)
                          throws IOException

      Copy the contents of the given InputStream to the given OutputStream. Leaves both streams open when done.
      Parameters:
        `in` - the InputStream to copy from
        `out` - the OutputStream to copy to
      Returns:
        the number of bytes copied
      Throws:
        `IOException` - in case of I/O errors

    - #### nonClosing

          public static InputStream nonClosing(InputStream in)

      Returns a variant of the given `InputStream` where calling `close()` has no effect.
      Parameters:
        `in` - the InputStream to decorate
      Returns:
        a version of the InputStream that ignores calls to close

    - #### nonClosing

          public static OutputStream nonClosing(OutputStream out)

      Returns a variant of the given `OutputStream` where calling `close()` has no effect.
      Parameters:
        `out` - the OutputStream to decorate
      Returns:
        a version of the OutputStream that ignores calls to close