org.apache.hadoop.fs

## Class FSInputStream

- java.lang.Object
- - java.io.InputStream
  - - org.apache.hadoop.fs.FSInputStream

- All Implemented Interfaces:
    Closeable, AutoCloseable, PositionedReadable, Seekable

      @InterfaceAudience.Public
       @InterfaceStability.Evolving
      public abstract class FSInputStream
      extends InputStream
      implements Seekable, PositionedReadable

  FSInputStream is a generic old InputStream with a little bit of RAF-style seek ability.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FSInputStream()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract long` | `getPos()` Return the current offset from the start of the file
    `int` | `read(long position, byte[] buffer, int offset, int length)` Read up to the specified number of bytes, from a given position within a file, and return the number of bytes read.
    `void` | `readFully(long position, byte[] buffer)` Read number of bytes equal to the length of the buffer, from a given position within a file.
    `void` | `readFully(long position, byte[] buffer, int offset, int length)` Read the specified number of bytes, from a given position within a file.
    `abstract void` | `seek(long pos)` Seek to the given offset from the start of the file.
    `abstract boolean` | `seekToNewSource(long targetPos)` Seeks a different copy of the data.
    `protected void` | `validatePositionedReadArgs(long position, byte[] buffer, int offset, int length)` Validation code, available for use in subclasses.

    - ### Methods inherited from class java.io.InputStream

      `available, close, mark, markSupported, read, read, read, reset, skip`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FSInputStream

          public FSInputStream()

  - ### Method Detail

    - #### seek

          public abstract void seek(long pos)
                             throws IOException

      Seek to the given offset from the start of the file. The next read() will be from that location. Can't seek past the end of the file.
      Specified by:
        `seek` in interface `Seekable`
      Throws:
        `IOException`

    - #### getPos

          public abstract long getPos()
                               throws IOException

      Return the current offset from the start of the file
      Specified by:
        `getPos` in interface `Seekable`
      Throws:
        `IOException`

    - #### seekToNewSource

          public abstract boolean seekToNewSource(long targetPos)
                                           throws IOException

      Seeks a different copy of the data. Returns true if found a new source, false otherwise.
      Throws:
        `IOException`

    - #### read

          public int read(long position,
                          byte[] buffer,
                          int offset,
                          int length)
                   throws IOException

      Description copied from interface: `PositionedReadable`
      Read up to the specified number of bytes, from a given position within a file, and return the number of bytes read. This does not change the current offset of a file, and is thread-safe. Warning: Not all filesystems satisfy the thread-safety requirement.
      Specified by:
        `read` in interface `PositionedReadable`
      Parameters:
        `position` - position within file
        `buffer` - destination buffer
        `offset` - offset in the buffer
        `length` - number of bytes to read
      Returns:
        actual number of bytes read; -1 means "none"
      Throws:
        `IOException` - IO problems.

    - #### validatePositionedReadArgs

          protected void validatePositionedReadArgs(long position,
                                                    byte[] buffer,
                                                    int offset,
                                                    int length)
                                             throws EOFException

      Validation code, available for use in subclasses.
      Parameters:
        `position` - position: if negative an EOF exception is raised
        `buffer` - destination buffer
        `offset` - offset within the buffer
        `length` - length of bytes to read
      Throws:
        `EOFException` - if the position is negative
        `IndexOutOfBoundsException` - if there isn't space for the amount of data requested.
        `IllegalArgumentException` - other arguments are invalid.

    - #### readFully

          public void readFully(long position,
                                byte[] buffer,
                                int offset,
                                int length)
                         throws IOException

      Description copied from interface: `PositionedReadable`
      Read the specified number of bytes, from a given position within a file. This does not change the current offset of a file, and is thread-safe. Warning: Not all filesystems satisfy the thread-safety requirement.
      Specified by:
        `readFully` in interface `PositionedReadable`
      Parameters:
        `position` - position within file
        `buffer` - destination buffer
        `offset` - offset in the buffer
        `length` - number of bytes to read
      Throws:
        `IOException` - IO problems.
        `EOFException` - the end of the data was reached before the read operation completed

    - #### readFully

          public void readFully(long position,
                                byte[] buffer)
                         throws IOException

      Description copied from interface: `PositionedReadable`
      Read number of bytes equal to the length of the buffer, from a given position within a file. This does not change the current offset of a file, and is thread-safe. Warning: Not all filesystems satisfy the thread-safety requirement.
      Specified by:
        `readFully` in interface `PositionedReadable`
      Parameters:
        `position` - position within file
        `buffer` - destination buffer
      Throws:
        `IOException` - IO problems.
        `EOFException` - the end of the data was reached before the read operation completed

Copyright © 2008–2022 Apache Software Foundation. All rights reserved.