@InterfaceAudience.Public @InterfaceStability.Evolving public class IOUtils extends Object
Modifier and Type | Field and Description |
---|---|
static org.slf4j.Logger |
LOG |
Constructor and Description |
---|
IOUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
cleanupWithLogger(org.slf4j.Logger logger,
Closeable... closeables)
Close the Closeable objects and ignore any
Throwable or
null pointers. |
static void |
closeSocket(Socket sock)
Closes the socket ignoring
IOException |
static void |
closeStream(Closeable stream)
Closes the stream ignoring
Throwable . |
static void |
closeStreams(Closeable... streams)
Closes the streams ignoring
Throwable . |
static void |
copyBytes(InputStream in,
OutputStream out,
Configuration conf)
Copies from one stream to another.
|
static void |
copyBytes(InputStream in,
OutputStream out,
Configuration conf,
boolean close)
Copies from one stream to another.
|
static void |
copyBytes(InputStream in,
OutputStream out,
int buffSize)
Copies from one stream to another.
|
static void |
copyBytes(InputStream in,
OutputStream out,
int buffSize,
boolean close)
Copies from one stream to another.
|
static void |
copyBytes(InputStream in,
OutputStream out,
long count,
boolean close)
Copies count bytes from one stream to another.
|
static void |
fsync(File fileToSync)
Ensure that any writes to the given file is written to the storage device
that contains it.
|
static void |
fsync(FileChannel channel,
boolean isDir)
Ensure that any writes to the given file is written to the storage device
that contains it.
|
static List<String> |
listDirectory(File dir,
FilenameFilter filter)
Return the complete list of files in a directory as strings.
|
static void |
readFully(InputStream in,
byte[] buf,
int off,
int len)
Reads len bytes in a loop.
|
static byte[] |
readFullyToByteArray(DataInput in)
Reads a DataInput until EOF and returns a byte array.
|
static void |
skipFully(InputStream in,
long len)
Similar to readFully().
|
static IOException |
wrapException(String path,
String methodName,
IOException exception)
Takes an IOException, file/directory path, and method name and returns an
IOException with the input exception as the cause and also include the
file,method details.
|
static int |
wrappedReadForCompressedData(InputStream is,
byte[] buf,
int off,
int len)
Utility wrapper for reading from
InputStream . |
static void |
writeFully(FileChannel fc,
ByteBuffer buf,
long offset)
Write a ByteBuffer to a FileChannel at a given offset,
handling short writes.
|
static void |
writeFully(WritableByteChannel bc,
ByteBuffer buf)
Write a ByteBuffer to a WritableByteChannel, handling short writes.
|
public static void copyBytes(InputStream in, OutputStream out, int buffSize, boolean close) throws IOException
in
- InputStrem to read fromout
- OutputStream to write tobuffSize
- the size of the bufferclose
- whether or not close the InputStream and
OutputStream at the end. The streams are closed in the finally clause.IOException
- raised on errors performing I/O.public static void copyBytes(InputStream in, OutputStream out, int buffSize) throws IOException
in
- InputStrem to read fromout
- OutputStream to write tobuffSize
- the size of the buffer.IOException
- raised on errors performing I/O.public static void copyBytes(InputStream in, OutputStream out, Configuration conf) throws IOException
in
- InputStrem to read fromout
- OutputStream to write toconf
- the Configuration object.IOException
- raised on errors performing I/O.public static void copyBytes(InputStream in, OutputStream out, Configuration conf, boolean close) throws IOException
in
- InputStream to read fromout
- OutputStream to write toconf
- the Configuration objectclose
- whether or not close the InputStream and
OutputStream at the end. The streams are closed in the finally clause.IOException
- raised on errors performing I/O.public static void copyBytes(InputStream in, OutputStream out, long count, boolean close) throws IOException
in
- InputStream to read fromout
- OutputStream to write tocount
- number of bytes to copyclose
- whether to close the streamsIOException
- if bytes can not be read or writtenpublic static int wrappedReadForCompressedData(InputStream is, byte[] buf, int off, int len) throws IOException
InputStream
. It catches any errors
thrown by the underlying stream (either IO or decompression-related), and
re-throws as an IOException.is
- - InputStream to be read frombuf
- - buffer the data is read intooff
- - offset within buflen
- - amount of data to be readIOException
- raised on errors performing I/O.public static void readFully(InputStream in, byte[] buf, int off, int len) throws IOException
in
- InputStream to read frombuf
- The buffer to filloff
- offset from the bufferlen
- the length of bytes to readIOException
- if it could not read requested number of bytes
for any reason (including EOF)public static void skipFully(InputStream in, long len) throws IOException
in
- The InputStream to skip bytes fromlen
- number of bytes to skip.IOException
- if it could not skip requested number of bytes
for any reason (including EOF)public static void cleanupWithLogger(org.slf4j.Logger logger, Closeable... closeables)
Throwable
or
null pointers. Must only be used for cleanup in exception handlers.logger
- the log to record problems to at debug level. Can be null.closeables
- the objects to closepublic static void closeStream(Closeable stream)
Throwable
.
Must only be called in cleaning up from exception handlers.stream
- the Stream to closepublic static void closeStreams(Closeable... streams)
Throwable
.
Must only be called in cleaning up from exception handlers.streams
- the Streams to closepublic static void closeSocket(Socket sock)
IOException
sock
- the Socket to closepublic static void writeFully(WritableByteChannel bc, ByteBuffer buf) throws IOException
bc
- The WritableByteChannel to write tobuf
- The input bufferIOException
- On I/O errorpublic static void writeFully(FileChannel fc, ByteBuffer buf, long offset) throws IOException
fc
- The FileChannel to write tobuf
- The input bufferoffset
- The offset in the file to start writing atIOException
- On I/O errorpublic static List<String> listDirectory(File dir, FilenameFilter filter) throws IOException
This is better than File#listDir because it does not ignore IOExceptions.
dir
- The directory to list.filter
- If non-null, the filter to use when listing
this directory.IOException
- On I/O errorpublic static void fsync(File fileToSync) throws IOException
fileToSync
- the file to fsyncIOException
- raised on errors performing I/O.public static void fsync(FileChannel channel, boolean isDir) throws IOException
channel
- Channel to syncisDir
- if true, the given file is a directory (Channel should be
opened for read and ignore IOExceptions, because not all file
systems and operating systems allow to fsync on a directory)IOException
- raised on errors performing I/O.public static IOException wrapException(String path, String methodName, IOException exception)
path
- file/directory pathmethodName
- method nameexception
- the caught exception.public static byte[] readFullyToByteArray(DataInput in) throws IOException
in
- A DataInputIOException
- on I/O error, other than EOFCopyright © 2023 Apache Software Foundation. All rights reserved.