Class IOUtils

java.lang.Object
org.elasticsearch.core.internal.io.IOUtils

public final class IOUtils
extends java.lang.Object
Utilities for common I/O methods. Borrowed heavily from Lucene (org.apache.lucene.util.IOUtils).
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static boolean LINUX  
    static boolean MAC_OS_X  
    static java.lang.String UTF_8
    UTF-8 charset string.
    static boolean WINDOWS  
  • Method Summary

    Modifier and Type Method Description
    static void close​(java.io.Closeable... objects)
    Closes all given Closeables.
    static void close​(java.lang.Exception e, java.io.Closeable... objects)
    Closes all given Closeables.
    static void close​(java.lang.Exception ex, java.lang.Iterable<? extends java.io.Closeable> objects)
    Closes all given Closeables.
    static void close​(java.lang.Iterable<? extends java.io.Closeable> objects)
    Closes all given Closeables.
    static void closeWhileHandlingException​(java.io.Closeable... objects)
    Closes all given Closeables, suppressing all thrown exceptions.
    static void closeWhileHandlingException​(java.lang.Iterable<? extends java.io.Closeable> objects)
    Closes all given Closeables, suppressing all thrown exceptions.
    static void deleteFilesIgnoringExceptions​(java.nio.file.Path... files)
    Deletes all given files, suppressing all thrown IOExceptions.
    static void deleteFilesIgnoringExceptions​(java.util.Collection<? extends java.nio.file.Path> files)
    Deletes all given files, suppressing all thrown IOExceptions.
    static void fsync​(java.nio.file.Path fileToSync, boolean isDir)
    Ensure that any writes to the given file is written to the storage device that contains it.
    static void rm​(java.nio.file.Path... locations)
    Deletes one or more files or directories (and everything underneath it).

    Methods inherited from class java.lang.Object

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

    • UTF_8

      public static final java.lang.String UTF_8
      UTF-8 charset string.

      Where possible, use StandardCharsets.UTF_8 instead, as using the String constant may slow things down.

      See Also:
      StandardCharsets.UTF_8
    • WINDOWS

      public static final boolean WINDOWS
    • LINUX

      public static final boolean LINUX
    • MAC_OS_X

      public static final boolean MAC_OS_X
  • Method Details

    • close

      public static void close​(java.io.Closeable... objects) throws java.io.IOException
      Closes all given Closeables. Some of the Closeables may be null; they are ignored. After everything is closed, the method either throws the first exception it hit while closing with other exceptions added as suppressed, or completes normally if there were no exceptions.
      Parameters:
      objects - objects to close
      Throws:
      java.io.IOException
    • close

      public static void close​(java.lang.Exception e, java.io.Closeable... objects) throws java.io.IOException
      Closes all given Closeables. Some of the Closeables may be null; they are ignored. After everything is closed, the method adds any exceptions as suppressed to the original exception, or throws the first exception it hit if Exception is null. If no exceptions are encountered and the passed in exception is null, it completes normally.
      Parameters:
      objects - objects to close
      Throws:
      java.io.IOException
    • close

      public static void close​(java.lang.Iterable<? extends java.io.Closeable> objects) throws java.io.IOException
      Closes all given Closeables. Some of the Closeables may be null; they are ignored. After everything is closed, the method either throws the first exception it hit while closing with other exceptions added as suppressed, or completes normally if there were no exceptions.
      Parameters:
      objects - objects to close
      Throws:
      java.io.IOException
    • close

      public static void close​(java.lang.Exception ex, java.lang.Iterable<? extends java.io.Closeable> objects) throws java.io.IOException
      Closes all given Closeables. If a non-null exception is passed in, or closing a stream causes an exception, throws the exception with other RuntimeException or IOException exceptions added as suppressed.
      Parameters:
      ex - existing Exception to add exceptions occurring during close to
      objects - objects to close
      Throws:
      java.io.IOException
      See Also:
      close(Closeable...)
    • closeWhileHandlingException

      public static void closeWhileHandlingException​(java.io.Closeable... objects)
      Closes all given Closeables, suppressing all thrown exceptions. Some of the Closeables may be null, they are ignored.
      Parameters:
      objects - objects to close
    • closeWhileHandlingException

      public static void closeWhileHandlingException​(java.lang.Iterable<? extends java.io.Closeable> objects)
      Closes all given Closeables, suppressing all thrown exceptions.
      Parameters:
      objects - objects to close
      See Also:
      closeWhileHandlingException(Closeable...)
    • deleteFilesIgnoringExceptions

      public static void deleteFilesIgnoringExceptions​(java.nio.file.Path... files)
      Deletes all given files, suppressing all thrown IOExceptions. Some of the files may be null, if so they are ignored.
      Parameters:
      files - the paths of files to delete
    • deleteFilesIgnoringExceptions

      public static void deleteFilesIgnoringExceptions​(java.util.Collection<? extends java.nio.file.Path> files)
      Deletes all given files, suppressing all thrown IOExceptions. Some of the files may be null, if so they are ignored.
      Parameters:
      files - the paths of files to delete
    • rm

      public static void rm​(java.nio.file.Path... locations) throws java.io.IOException
      Deletes one or more files or directories (and everything underneath it).
      Throws:
      java.io.IOException - if any of the given files (or their sub-hierarchy files in case of directories) cannot be removed.
    • fsync

      public static void fsync​(java.nio.file.Path fileToSync, boolean isDir) throws java.io.IOException
      Ensure that any writes to the given file is written to the storage device that contains it. The isDir parameter specifies whether or not the path to sync is a directory. This is needed because we open for read and ignore an IOException since not all filesystems and operating systems support fsyncing on a directory. For regular files we must open for write for the fsync to have an effect.
      Parameters:
      fileToSync - the file to fsync
      isDir - 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:
      java.io.IOException