Class IOUtils
Closeable
s.- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Deprecated, for removal: This API element is subject to removal in a future version.static interface
Deprecated, for removal: This API element is subject to removal in a future version.was replaced byIOFunction
. -
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> void
applyToAll
(Collection<T> collection, IOUtils.IOConsumer<T> consumer) Applies the consumer to all non-null elements in the collection even if an exception is thrown.static void
Closes all givenCloseable
s.static void
Closes all givenCloseable
s.static void
closeWhileHandlingException
(Closeable... objects) Closes all givenCloseable
s, suppressing all thrown exceptions.static void
closeWhileHandlingException
(Iterable<? extends Closeable> objects) Closes all givenCloseable
s, suppressing all thrown nonVirtualMachineError
exceptions.static void
deleteFiles
(Directory dir, Collection<String> names) Deletes all given file names.static void
deleteFilesIfExist
(Path... files) Deletes all givenPath
s, if they exist.static void
deleteFilesIfExist
(Collection<? extends Path> files) Deletes all givenPath
s, if they exist.static void
deleteFilesIgnoringExceptions
(Path... files) Deletes all given files, suppressing all thrown IOExceptions.static void
deleteFilesIgnoringExceptions
(Collection<? extends Path> files) Deletes all given files, suppressing all thrown IOExceptions.static void
deleteFilesIgnoringExceptions
(Directory dir, String... files) static void
deleteFilesIgnoringExceptions
(Directory dir, Collection<String> files) Deletes all given files, suppressing all thrown IOExceptions.static void
Ensure that any writes to the given file is written to the storage device that contains it.static Reader
getDecodingReader
(InputStream stream, Charset charSet) Wrapping the givenInputStream
in a reader using aCharsetDecoder
.static Reader
getDecodingReader
(Class<?> clazz, String resource, Charset charSet) Deprecated, for removal: This API element is subject to removal in a future version.Class.getResourceAsStream(String)
is caller sensitive and cannot load resources across Java Modules.static <T> T
requireResourceNonNull
(T resource, String name) Wrap all calls toClass.getResource(String)
orClass.getResourceAsStream(String)
using this method to enforce existence of the resource.static Error
This utility method takes a previously caught (non-null)Throwable
and rethrows either the original argument if it was a subclass of theIOException
or anRuntimeException
with the cause set to the argument.static void
Deletes one or more files or directories (and everything underneath it).static <T extends Throwable>
TuseOrSuppress
(T first, T second) Returns the second throwable if the first is null otherwise adds the second as suppressed to the first and returns it.
-
Field Details
-
UTF_8
UTF-8 charset string.Where possible, use
StandardCharsets.UTF_8
instead, as using the String constant may slow things down.- See Also:
-
-
Method Details
-
close
Closes all givenCloseable
s. Some of theCloseable
s may be null; they are ignored. After everything is closed, the method either throws the first exception it hit while closing, or completes normally if there were no exceptions.- Parameters:
objects
- objects to callclose()
on- Throws:
IOException
-
close
Closes all givenCloseable
s.- Throws:
IOException
- See Also:
-
closeWhileHandlingException
Closes all givenCloseable
s, suppressing all thrown exceptions. Some of theCloseable
s may be null, they are ignored.- Parameters:
objects
- objects to callclose()
on
-
closeWhileHandlingException
Closes all givenCloseable
s, suppressing all thrown nonVirtualMachineError
exceptions. Even if aVirtualMachineError
is thrown all given closeable are closed. -
getDecodingReader
Wrapping the givenInputStream
in a reader using aCharsetDecoder
. Unlike Java's defaults this reader will throw an exception if your it detects the read charset doesn't match the expectedCharset
.Decoding readers are useful to load configuration files, stopword lists or synonym files to detect character set problems. However, it's not recommended to use as a common purpose reader.
- Parameters:
stream
- the stream to wrap in a readercharSet
- the expected charset- Returns:
- a wrapping reader
-
requireResourceNonNull
Wrap all calls toClass.getResource(String)
orClass.getResourceAsStream(String)
using this method to enforce existence of the resource. This code works around those methods returningnull
to signal non-existence.- Parameters:
resource
- return value of above methodsname
- of resource- Returns:
- the resource passed in if existent
- Throws:
FileNotFoundException
- if resource was not foundIOException
-
getDecodingReader
@Deprecated(forRemoval=true, since="9.1") public static Reader getDecodingReader(Class<?> clazz, String resource, Charset charSet) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.Class.getResourceAsStream(String)
is caller sensitive and cannot load resources across Java Modules. Please call thegetResourceAsStream()
directly and userequireResourceNonNull(Object,String)
to signal missing resourcesnull
Opens a Reader for the given resource using aCharsetDecoder
. Unlike Java's defaults this reader will throw an exception if your it detects the read charset doesn't match the expectedCharset
.Decoding readers are useful to load configuration files, stopword lists or synonym files to detect character set problems. However, it's not recommended to use as a common purpose reader.
- Parameters:
clazz
- the class used to locate the resourceresource
- the resource name to loadcharSet
- the expected charset- Returns:
- a reader to read the given file
- Throws:
IOException
-
deleteFilesIgnoringExceptions
Deletes all given files, suppressing all thrown IOExceptions.Note that the files should not be null.
-
deleteFilesIgnoringExceptions
-
deleteFiles
Deletes all given file names. Some of the file names may be null; they are ignored. After everything is deleted, the method either throws the first exception it hit while deleting, or completes normally if there were no exceptions.- Parameters:
dir
- Directory to delete files fromnames
- file names to delete- Throws:
IOException
-
deleteFilesIgnoringExceptions
Deletes all given files, suppressing all thrown IOExceptions.Some of the files may be null, if so they are ignored.
-
deleteFilesIgnoringExceptions
Deletes all given files, suppressing all thrown IOExceptions.Some of the files may be null, if so they are ignored.
-
deleteFilesIfExist
Deletes all givenPath
s, if they exist. Some of theFile
s may be null; they are ignored. After everything is deleted, the method either throws the first exception it hit while deleting, or completes normally if there were no exceptions.- Parameters:
files
- files to delete- Throws:
IOException
-
deleteFilesIfExist
Deletes all givenPath
s, if they exist. Some of theFile
s may be null; they are ignored. After everything is deleted, the method either throws the first exception it hit while deleting, or completes normally if there were no exceptions.- Parameters:
files
- files to delete- Throws:
IOException
-
rm
Deletes one or more files or directories (and everything underneath it).- Throws:
IOException
- if any of the given files (or their subhierarchy files in case of directories) cannot be removed.
-
rethrowAlways
This utility method takes a previously caught (non-null)Throwable
and rethrows either the original argument if it was a subclass of theIOException
or anRuntimeException
with the cause set to the argument.This method never returns any value, even though it declares a return value of type
Error
. The return value declaration is very useful to let the compiler know that the code path following the invocation of this method is unreachable. So in most cases the invocation of this method will be guarded by anif
and used together with athrow
statement, as in:if (t != null) throw IOUtils.rethrowAlways(t)
- Parameters:
th
- The throwable to rethrow, must not be null.- Returns:
- This method always results in an exception, it never returns any value. See method documentation for details and usage example.
- Throws:
IOException
- if the argument was an instance of IOExceptionRuntimeException
- with theThrowable.getCause()
set to the argument, if it was not an instance of IOException.
-
fsync
Ensure that any writes to the given file is written to the storage device that contains it.- Parameters:
fileToSync
- the file to fsyncisDir
- if true, the given file is a directory (we open for read and ignore IOExceptions, because not all file systems and operating systems allow to fsync on a directory)- Throws:
IOException
-
useOrSuppress
Returns the second throwable if the first is null otherwise adds the second as suppressed to the first and returns it. -
applyToAll
public static <T> void applyToAll(Collection<T> collection, IOUtils.IOConsumer<T> consumer) throws IOException Applies the consumer to all non-null elements in the collection even if an exception is thrown. The first exception thrown by the consumer is re-thrown and subsequent exceptions are suppressed.- Throws:
IOException
-
IOConsumer
.