Class IOUtils

java.lang.Object
org.apache.commons.compress.utils.IOUtils

public final class IOUtils extends Object
Utility functions
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final int
     
    static final LinkOption[]
    Empty array of of type LinkOption.
    private static final byte[]
     
    private static final int
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Private constructor to prevent instantiation of this utility class.
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    Closes the given Closeable and swallows any IOException that may occur.
    static void
    copy(File sourceFile, OutputStream outputStream)
    Copies the source file to the given output stream.
    static long
    copy(InputStream input, OutputStream output)
    Copies the content of a InputStream into an OutputStream.
    static long
    copy(InputStream input, OutputStream output, int buffersize)
    Copies the content of a InputStream into an OutputStream
    static long
    copyRange(InputStream input, long len, OutputStream output)
    Copies part of the content of a InputStream into an OutputStream.
    static long
    copyRange(InputStream input, long len, OutputStream output, int buffersize)
    Copies part of the content of a InputStream into an OutputStream
    static int
    read(File file, byte[] array)
    Reads as much from the file as possible to fill the given array.
    static int
    readFully(InputStream input, byte[] array)
    Reads as much from input as possible to fill the given array.
    static int
    readFully(InputStream input, byte[] array, int offset, int len)
    Reads as much from input as possible to fill the given array with the given amount of bytes.
    static void
    Reads b.remaining() bytes from the given channel starting at the current channel's position.
    static byte[]
    readRange(InputStream input, int len)
    Gets part of the contents of an InputStream as a byte[].
    static byte[]
    readRange(ReadableByteChannel input, int len)
    Gets part of the contents of an ReadableByteChannel as a byte[].
    static long
    skip(InputStream input, long numToSkip)
    Skips the given number of bytes by repeatedly invoking skip on the given input stream if necessary.
    static byte[]
    Gets the contents of an InputStream as a byte[].

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • COPY_BUF_SIZE

      private static final int COPY_BUF_SIZE
      See Also:
    • SKIP_BUF_SIZE

      private static final int SKIP_BUF_SIZE
      See Also:
    • SKIP_BUF

      private static final byte[] SKIP_BUF
  • Constructor Details

    • IOUtils

      private IOUtils()
      Private constructor to prevent instantiation of this utility class.
  • Method Details

    • copy

      public static long copy(InputStream input, OutputStream output) throws IOException
      Copies the content of a InputStream into an OutputStream. Uses a default buffer size of 8024 bytes.
      Parameters:
      input - the InputStream to copy
      output - the target Stream
      Returns:
      the number of bytes copied
      Throws:
      IOException - if an error occurs
    • copy

      public static long copy(InputStream input, OutputStream output, int buffersize) throws IOException
      Copies the content of a InputStream into an OutputStream
      Parameters:
      input - the InputStream to copy
      output - the target Stream
      buffersize - the buffer size to use, must be bigger than 0
      Returns:
      the number of bytes copied
      Throws:
      IOException - if an error occurs
      IllegalArgumentException - if buffersize is smaller than or equal to 0
    • skip

      public static long skip(InputStream input, long numToSkip) throws IOException
      Skips the given number of bytes by repeatedly invoking skip on the given input stream if necessary.

      In a case where the stream's skip() method returns 0 before the requested number of bytes has been skip this implementation will fall back to using the read() method.

      This method will only skip less than the requested number of bytes if the end of the input stream has been reached.

      Parameters:
      input - stream to skip bytes in
      numToSkip - the number of bytes to skip
      Returns:
      the number of bytes actually skipped
      Throws:
      IOException - on error
    • read

      public static int read(File file, byte[] array) throws IOException
      Reads as much from the file as possible to fill the given array.

      This method may invoke read repeatedly to fill the array and only read less bytes than the length of the array if the end of the stream has been reached.

      Parameters:
      file - file to read
      array - buffer to fill
      Returns:
      the number of bytes actually read
      Throws:
      IOException - on error
      Since:
      1.20
    • readFully

      public static int readFully(InputStream input, byte[] array) throws IOException
      Reads as much from input as possible to fill the given array.

      This method may invoke read repeatedly to fill the array and only read less bytes than the length of the array if the end of the stream has been reached.

      Parameters:
      input - stream to read from
      array - buffer to fill
      Returns:
      the number of bytes actually read
      Throws:
      IOException - on error
    • readFully

      public static int readFully(InputStream input, byte[] array, int offset, int len) throws IOException
      Reads as much from input as possible to fill the given array with the given amount of bytes.

      This method may invoke read repeatedly to read the bytes and only read less bytes than the requested length if the end of the stream has been reached.

      Parameters:
      input - stream to read from
      array - buffer to fill
      offset - offset into the buffer to start filling at
      len - of bytes to read
      Returns:
      the number of bytes actually read
      Throws:
      IOException - if an I/O error has occurred
    • readFully

      public static void readFully(ReadableByteChannel channel, ByteBuffer b) throws IOException
      Reads b.remaining() bytes from the given channel starting at the current channel's position.

      This method reads repeatedly from the channel until the requested number of bytes are read. This method blocks until the requested number of bytes are read, the end of the channel is detected, or an exception is thrown.

      Parameters:
      channel - the channel to read from
      b - the buffer into which the data is read.
      Throws:
      IOException - - if an I/O error occurs.
      EOFException - - if the channel reaches the end before reading all the bytes.
    • toByteArray

      public static byte[] toByteArray(InputStream input) throws IOException
      Gets the contents of an InputStream as a byte[].

      This method buffers the input internally, so there is no need to use a BufferedInputStream.

      Parameters:
      input - the InputStream to read from
      Returns:
      the requested byte array
      Throws:
      NullPointerException - if the input is null
      IOException - if an I/O error occurs
      Since:
      1.5
    • closeQuietly

      public static void closeQuietly(Closeable c)
      Closes the given Closeable and swallows any IOException that may occur.
      Parameters:
      c - Closeable to close, can be null
      Since:
      1.7
    • copy

      public static void copy(File sourceFile, OutputStream outputStream) throws IOException
      Copies the source file to the given output stream.
      Parameters:
      sourceFile - The file to read.
      outputStream - The output stream to write.
      Throws:
      IOException - if an I/O error occurs when reading or writing.
      Since:
      1.21
    • copyRange

      public static long copyRange(InputStream input, long len, OutputStream output) throws IOException
      Copies part of the content of a InputStream into an OutputStream. Uses a default buffer size of 8024 bytes.
      Parameters:
      input - the InputStream to copy
      output - the target Stream
      len - maximum amount of bytes to copy
      Returns:
      the number of bytes copied
      Throws:
      IOException - if an error occurs
      Since:
      1.21
    • copyRange

      public static long copyRange(InputStream input, long len, OutputStream output, int buffersize) throws IOException
      Copies part of the content of a InputStream into an OutputStream
      Parameters:
      input - the InputStream to copy
      len - maximum amount of bytes to copy
      output - the target Stream
      buffersize - the buffer size to use, must be bigger than 0
      Returns:
      the number of bytes copied
      Throws:
      IOException - if an error occurs
      IllegalArgumentException - if buffersize is smaller than or equal to 0
      Since:
      1.21
    • readRange

      public static byte[] readRange(InputStream input, int len) throws IOException
      Gets part of the contents of an InputStream as a byte[].
      Parameters:
      input - the InputStream to read from
      len - maximum amount of bytes to copy
      Returns:
      the requested byte array
      Throws:
      NullPointerException - if the input is null
      IOException - if an I/O error occurs
      Since:
      1.21
    • readRange

      public static byte[] readRange(ReadableByteChannel input, int len) throws IOException
      Gets part of the contents of an ReadableByteChannel as a byte[].
      Parameters:
      input - the ReadableByteChannel to read from
      len - maximum amount of bytes to copy
      Returns:
      the requested byte array
      Throws:
      NullPointerException - if the input is null
      IOException - if an I/O error occurs
      Since:
      1.21