Package oshi.util

Class FileUtil

java.lang.Object
oshi.util.FileUtil

@ThreadSafe public final class FileUtil extends Object
File reading methods
  • Method Details

    • readFile

      public static List<String> readFile(String filename)
      Read an entire file at one time. Intended primarily for Linux /proc filesystem to avoid recalculating file contents on iterative reads.
      Parameters:
      filename - The file to read
      Returns:
      A list of Strings representing each line of the file, or an empty list if file could not be read or is empty
    • readFile

      public static List<String> readFile(String filename, boolean reportError)
      Read an entire file at one time. Intended primarily for Linux /proc filesystem to avoid recalculating file contents on iterative reads.
      Parameters:
      filename - The file to read
      reportError - Whether to log errors reading the file
      Returns:
      A list of Strings representing each line of the file, or an empty list if file could not be read or is empty
    • readLines

      public static List<String> readLines(String filename, int count)
      Read count lines from a file. Intended primarily for Linux /proc filesystem to avoid recalculating file contents on iterative reads.
      Parameters:
      filename - The file to read
      count - The number of lines to read
      Returns:
      A list of Strings representing the first count lines of the file, or an empty list if file could not be read or is empty
    • readLines

      public static List<String> readLines(String filename, int count, boolean reportError)
      Read count lines from a file. Intended primarily for Linux /proc filesystem to avoid recalculating file contents on iterative reads.
      Parameters:
      filename - The file to read
      count - The number of lines to read
      reportError - Whether to log errors reading the file
      Returns:
      A list of Strings representing the first count lines of the file, or an empty list if file could not be read or is empty
    • readAllBytes

      public static byte[] readAllBytes(String filename, boolean reportError)
      Read an entire file at one time. Intended primarily for Linux /proc filesystem to avoid recalculating file contents on iterative reads.
      Parameters:
      filename - The file to read
      reportError - Whether to log errors reading the file
      Returns:
      A byte array representing the file
    • readAllBytesAsBuffer

      public static ByteBuffer readAllBytesAsBuffer(String filename)
      Read an entire file at one time. Intended for unix /proc binary files to avoid reading file contents on iterative reads.
      Parameters:
      filename - The file to read
      Returns:
      A bytebuffer representing the file if read was successful; null otherwise
    • readByteFromBuffer

      public static byte readByteFromBuffer(ByteBuffer buff)
      Reads a byte value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      Returns:
      The next byte value
    • readShortFromBuffer

      public static short readShortFromBuffer(ByteBuffer buff)
      Reads a short value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      Returns:
      The next short value
    • readIntFromBuffer

      public static int readIntFromBuffer(ByteBuffer buff)
      Reads an int value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      Returns:
      The next int value
    • readLongFromBuffer

      public static long readLongFromBuffer(ByteBuffer buff)
      Reads a long value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      Returns:
      The next long value
    • readNativeLongFromBuffer

      public static com.sun.jna.NativeLong readNativeLongFromBuffer(ByteBuffer buff)
      Reads a NativeLong value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      Returns:
      The next value
    • readSizeTFromBuffer

      public static com.sun.jna.platform.unix.LibCAPI.size_t readSizeTFromBuffer(ByteBuffer buff)
      Reads a size_t value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      Returns:
      The next value
    • readByteArrayFromBuffer

      public static void readByteArrayFromBuffer(ByteBuffer buff, byte[] array)
      Reads a byte array value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      array - The array into which to read the data
    • readPointerFromBuffer

      public static com.sun.jna.Pointer readPointerFromBuffer(ByteBuffer buff)
      Reads a Pointer value from a ByteBuffer
      Parameters:
      buff - The bytebuffer to read from
      Returns:
      The next value
    • getLongFromFile

      public static long getLongFromFile(String filename)
      Read a file and return the long value contained therein. Intended primarily for Linux /sys filesystem
      Parameters:
      filename - The file to read
      Returns:
      The value contained in the file, if any; otherwise zero
    • getUnsignedLongFromFile

      public static long getUnsignedLongFromFile(String filename)
      Read a file and return the unsigned long value contained therein as a long. Intended primarily for Linux /sys filesystem
      Parameters:
      filename - The file to read
      Returns:
      The value contained in the file, if any; otherwise zero
    • getIntFromFile

      public static int getIntFromFile(String filename)
      Read a file and return the int value contained therein. Intended primarily for Linux /sys filesystem
      Parameters:
      filename - The file to read
      Returns:
      The value contained in the file, if any; otherwise zero
    • getStringFromFile

      public static String getStringFromFile(String filename)
      Read a file and return the String value contained therein. Intended primarily for Linux /sys filesystem
      Parameters:
      filename - The file to read
      Returns:
      The value contained in the file, if any; otherwise empty string
    • getKeyValueMapFromFile

      public static Map<String,String> getKeyValueMapFromFile(String filename, String separator)
      Read a file and return a map of string keys to string values contained therein. Intended primarily for Linux /proc/[pid] files to provide more detailed or accurate information not available in the API.
      Parameters:
      filename - The file to read
      separator - Character(s) in each line of the file that separate the key and the value.
      Returns:
      The map contained in the file, delimited by the separator, with the value whitespace trimmed. If keys and values are not parsed, an empty map is returned.
    • readPropertiesFromFilename

      public static Properties readPropertiesFromFilename(String propsFilename)
      Read a configuration file from the sequence of context classloader, system classloader and classloader of the current class, and return its properties
      Parameters:
      propsFilename - The filename
      Returns:
      A Properties object containing the properties.
    • readFileAsBytes

      public static byte[] readFileAsBytes(URL url) throws IOException
      Reads a URL into a byte array
      Parameters:
      url - The URL of the file to read
      Returns:
      the byte content of the file
      Throws:
      IOException - on file reading failure
    • readSymlinkTarget

      public static String readSymlinkTarget(File file)
      Reads the target of a symbolic link
      Parameters:
      file - The file to read
      Returns:
      The symlink name, or null if the read failed