Class IOUtil

java.lang.Object
org.apache.iceberg.io.IOUtil

public class IOUtil extends Object
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    capacityFor(int size)
    Returns a capacity that is the next power of 2 larger than the size.
    static void
    readFully(InputStream stream, byte[] bytes, int offset, int length)
    Reads into a buffer from a stream, making multiple read calls if necessary.
    static void
    readFully(InputFile inputFile, long fileOffset, byte[] bytes, int offset, int length)
    Reads exactly length bytes from the input file starting at fileOffset into the buffer.
    static int
    readRemaining(InputStream stream, byte[] bytes, int offset, int length)
    Reads into a buffer from a stream, making multiple read calls if necessary returning the number of bytes read until end of stream.
    static void
    writeFully(OutputStream outputStream, ByteBuffer buffer)
    Writes a buffer into a stream, making multiple write calls if necessary.

    Methods inherited from class java.lang.Object

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

    • readFully

      public static void readFully(InputStream stream, byte[] bytes, int offset, int length) throws IOException
      Reads into a buffer from a stream, making multiple read calls if necessary.
      Parameters:
      stream - an InputStream to read from
      bytes - a buffer to write into
      offset - starting offset in the buffer for the data
      length - length of bytes to copy from the input stream to the buffer
      Throws:
      EOFException - if the end of the stream is reached before reading length bytes
      IOException - if there is an error while reading
    • readFully

      public static void readFully(InputFile inputFile, long fileOffset, byte[] bytes, int offset, int length) throws IOException
      Reads exactly length bytes from the input file starting at fileOffset into the buffer. Uses range reads when supported.
      Parameters:
      inputFile - the file to read from
      fileOffset - the position in the file to start reading from
      bytes - a buffer to write into
      offset - starting offset in the buffer for the data
      length - number of bytes to read
      Throws:
      IOException - if there is an error while reading or if the end of the stream is reached before reading length bytes
    • writeFully

      public static void writeFully(OutputStream outputStream, ByteBuffer buffer) throws IOException
      Writes a buffer into a stream, making multiple write calls if necessary.
      Throws:
      IOException
    • readRemaining

      public static int readRemaining(InputStream stream, byte[] bytes, int offset, int length) throws IOException
      Reads into a buffer from a stream, making multiple read calls if necessary returning the number of bytes read until end of stream.
      Parameters:
      stream - an InputStream to read from
      bytes - a buffer to write into
      offset - starting offset in the buffer for the data
      length - length of bytes to copy from the input stream to the buffer
      Returns:
      the number of bytes read
      Throws:
      IOException - if there is an error while reading
    • capacityFor

      public static int capacityFor(int size)
      Returns a capacity that is the next power of 2 larger than the size.
      Parameters:
      size - an object size
      Returns:
      a capacity that is larger than the size for reused buffers