- java.lang.Object
-
- kala.compress.utils.IOUtils
-
public final class IOUtils extends java.lang.ObjectUtility functions.
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_BUFFER_SIZEThe default buffer size (8192) to use in copy methods.static java.nio.file.LinkOption[]EMPTY_LINK_OPTIONSEmpty array of typeLinkOption.static java.nio.file.OpenOption[]EMPTY_OPEN_OPTIONSEmpty array of typeOpenOption.private static byte[]SKIP_BUFFER
-
Constructor Summary
Constructors Modifier Constructor Description privateIOUtils()Private constructor to prevent instantiation of this utility class.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidclose(java.io.Closeable closeable)Closes the givenCloseableas a null-safe operation.static voidcloseQuietly(java.io.Closeable closeable)Closes the given Closeable and swallows any IOException that may occur.static longcopy(java.io.InputStream input, java.io.OutputStream output)Copies the content of a InputStream into an OutputStream.static longcopy(java.io.InputStream input, java.io.OutputStream output, int bufferSize)Copies the content of a InputStream into an OutputStreamstatic longcopyRange(java.io.InputStream input, long len, java.io.OutputStream output)Copies part of the content of a InputStream into an OutputStream.static longcopyRange(java.io.InputStream input, long len, java.io.OutputStream output, int bufferSize)Copies part of the content of a InputStream into an OutputStreamstatic intreadFully(java.io.InputStream input, byte[] array)Reads as much from input as possible to fill the given array.static intreadFully(java.io.InputStream input, byte[] array, int offset, int length)Reads as much from input as possible to fill the given array with the given amount of bytes.static voidreadFully(java.nio.channels.ReadableByteChannel channel, java.nio.ByteBuffer byteBuffer)Readsb.remaining()bytes from the given channel starting at the current channel's position.static byte[]readRange(java.io.InputStream input, int length)Gets part of the contents of anInputStreamas abyte[].static byte[]readRange(java.nio.channels.ReadableByteChannel input, int length)Gets part of the contents of anReadableByteChannelas abyte[].static longskip(java.io.InputStream input, long toSkip)Skips bytes from an input byte stream.static byte[]toByteArray(java.io.InputStream input)Gets the contents of anInputStreamas abyte[].
-
-
-
Field Detail
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
The default buffer size (8192) to use in copy methods.- Since:
- 1.27.1-0
- See Also:
- Constant Field Values
-
EMPTY_OPEN_OPTIONS
public static final java.nio.file.OpenOption[] EMPTY_OPEN_OPTIONS
Empty array of typeOpenOption.- Since:
- 1.27.1-0
-
EMPTY_LINK_OPTIONS
public static final java.nio.file.LinkOption[] EMPTY_LINK_OPTIONS
Empty array of typeLinkOption.- Since:
- 1.21
-
SKIP_BUFFER
private static final byte[] SKIP_BUFFER
-
-
Method Detail
-
close
public static void close(java.io.Closeable closeable) throws java.io.IOExceptionCloses the givenCloseableas a null-safe operation.- Parameters:
closeable- The resource to close, may be null.- Throws:
java.io.IOException- if an I/O error occurs.- Since:
- 1.27.1-0
-
closeQuietly
public static void closeQuietly(java.io.Closeable closeable)
Closes the given Closeable and swallows any IOException that may occur.- Parameters:
closeable- Closeable to close, can be null- Since:
- 1.7
-
copy
public static long copy(java.io.InputStream input, java.io.OutputStream output) throws java.io.IOExceptionCopies the content of a InputStream into an OutputStream. Uses a default buffer size of 8192 bytes.- Parameters:
input- theInputStreamto read.output- theOutputStreamto write.- Returns:
- the number of bytes copied.
- Throws:
java.io.IOException- if an error occurs.java.lang.NullPointerException- if theinputoroutputisnull.
-
copy
public static long copy(java.io.InputStream input, java.io.OutputStream output, int bufferSize) throws java.io.IOExceptionCopies the content of a InputStream into an OutputStream- Parameters:
input- theInputStreamto read.output- theOutputStreamto write.bufferSize- the buffer size to use, must be bigger than 0.- Returns:
- the number of bytes copied.
- Throws:
java.io.IOException- if an error occurs.java.lang.NullPointerException- if theinputoroutputisnull.
-
copyRange
public static long copyRange(java.io.InputStream input, long len, java.io.OutputStream output) throws java.io.IOExceptionCopies part of the content of a InputStream into an OutputStream. Uses a default buffer size of 8024 bytes.- Parameters:
input- the InputStream to copyoutput- the target Streamlen- maximum amount of bytes to copy- Returns:
- the number of bytes copied
- Throws:
java.io.IOException- if an error occurs- Since:
- 1.21
-
copyRange
public static long copyRange(java.io.InputStream input, long len, java.io.OutputStream output, int bufferSize) throws java.io.IOExceptionCopies part of the content of a InputStream into an OutputStream- Parameters:
input- the InputStream to copylen- maximum amount of bytes to copyoutput- the target, may be null to simulate output to dev/null on Linux and NUL on WindowsbufferSize- the buffer size to use, must be bigger than 0- Returns:
- the number of bytes copied
- Throws:
java.io.IOException- if an error occursjava.lang.IllegalArgumentException- if bufferSize is smaller than or equal to 0- Since:
- 1.21
-
readFully
public static int readFully(java.io.InputStream input, byte[] array) throws java.io.IOExceptionReads 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 fromarray- buffer to fill- Returns:
- the number of bytes actually read
- Throws:
java.io.IOException- on error
-
readFully
public static int readFully(java.io.InputStream input, byte[] array, int offset, int length) throws java.io.IOExceptionReads 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 fromarray- buffer to filloffset- offset into the buffer to start filling atlength- of bytes to read- Returns:
- the number of bytes actually read
- Throws:
java.io.IOException- if an I/O error has occurred
-
readFully
public static void readFully(java.nio.channels.ReadableByteChannel channel, java.nio.ByteBuffer byteBuffer) throws java.io.IOExceptionReadsb.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 frombyteBuffer- the buffer into which the data is read.- Throws:
java.io.IOException- if an I/O error occurs.java.io.EOFException- if the channel reaches the end before reading all the bytes.
-
readRange
public static byte[] readRange(java.io.InputStream input, int length) throws java.io.IOExceptionGets part of the contents of anInputStreamas abyte[].- Parameters:
input- theInputStreamto read fromlength- maximum amount of bytes to copy- Returns:
- the requested byte array
- Throws:
java.lang.NullPointerException- if the input is nulljava.io.IOException- if an I/O error occurs- Since:
- 1.21
-
readRange
public static byte[] readRange(java.nio.channels.ReadableByteChannel input, int length) throws java.io.IOExceptionGets part of the contents of anReadableByteChannelas abyte[].- Parameters:
input- theReadableByteChannelto read fromlength- maximum amount of bytes to copy- Returns:
- the requested byte array
- Throws:
java.lang.NullPointerException- if the input is nulljava.io.IOException- if an I/O error occurs- Since:
- 1.21
-
skip
public static long skip(java.io.InputStream input, long toSkip) throws java.io.IOExceptionSkips bytes from an input byte stream.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 intoSkip- the number of bytes to skip- Returns:
- the number of bytes actually skipped
- Throws:
java.io.IOException- on error
-
toByteArray
public static byte[] toByteArray(java.io.InputStream input) throws java.io.IOExceptionGets the contents of anInputStreamas abyte[].This method buffers the input internally, so there is no need to use a
BufferedInputStream.- Parameters:
input- theInputStreamto read from- Returns:
- the requested byte array
- Throws:
java.lang.NullPointerException- if the input is nulljava.io.IOException- if an I/O error occurs- Since:
- 1.5
-
-