Class HttpFileStream

java.lang.Object
com.mku.streams.RandomAccessStream
com.mku.fs.streams.HttpFileStream

public class HttpFileStream extends RandomAccessStream
File stream implementation for remote HTTP files.
  • Constructor Details

    • HttpFileStream

      public HttpFileStream(HttpFile file, String mode)
      Construct a file stream from a JavaFile. This will create a wrapper stream that will route read() and write() to the FileChannel
      Parameters:
      file - The JavaFile that will be used to get the read/write stream
      mode - The mode "r" for read "rw" for write
  • Method Details

    • setMaxNetBytesSkip

      public void setMaxNetBytesSkip(long maxNetBytesSkip)
      Maximum amount of bytes allowed to skip forwards when seeking otherwise will open a new connection
      Parameters:
      maxNetBytesSkip - The maximum number of bytes to skip
    • canRead

      public boolean canRead()
      Check if stream can read from file.
      Specified by:
      canRead in class RandomAccessStream
      Returns:
      True if readable
    • canWrite

      public boolean canWrite()
      Check if stream can write to file.
      Specified by:
      canWrite in class RandomAccessStream
      Returns:
      True if writable
    • canSeek

      public boolean canSeek()
      Check if stream can seek.
      Specified by:
      canSeek in class RandomAccessStream
      Returns:
      True if seekable
    • getLength

      public long getLength()
      Get the length of the stream. This is the same as the backed file.
      Specified by:
      getLength in class RandomAccessStream
      Returns:
      The file stream length
    • getPosition

      public long getPosition() throws IOException
      Get the current position of the stream.
      Specified by:
      getPosition in class RandomAccessStream
      Returns:
      The current position
      Throws:
      IOException - Thrown if there is an IO error.
    • setPosition

      public void setPosition(long value) throws IOException
      Set the current position of the stream.
      Specified by:
      setPosition in class RandomAccessStream
      Parameters:
      value - The new position.
      Throws:
      IOException - Thrown if there is an IO error.
    • setLength

      public void setLength(long value) throws IOException
      Set the length of the stream. This is applicable for write streams only.
      Specified by:
      setLength in class RandomAccessStream
      Parameters:
      value - The new length.
      Throws:
      IOException - Thrown if there is an IO error.
    • read

      public int read(byte[] buffer, int offset, int count) throws IOException
      Read data from the file stream into the buffer provided.
      Specified by:
      read in class RandomAccessStream
      Parameters:
      buffer - The buffer to write the data.
      offset - The offset of the buffer to start writing the data.
      count - The maximum number of bytes to read from.
      Returns:
      The bytes read
      Throws:
      IOException - Thrown if there is an IO error.
    • write

      public void write(byte[] buffer, int offset, int count) throws IOException
      Write the data from the buffer provided into the stream.
      Specified by:
      write in class RandomAccessStream
      Parameters:
      buffer - The buffer to read the data from.
      offset - The offset of the buffer to start reading the data.
      count - The maximum number of bytes to read from the buffer.
      Throws:
      IOException - Thrown if there is an IO error.
    • seek

      public long seek(long offset, RandomAccessStream.SeekOrigin origin) throws IOException
      Seek to the offset provided.
      Specified by:
      seek in class RandomAccessStream
      Parameters:
      offset - The position to seek to.
      origin - The type of origin RandomAccessStream.SeekOrigin
      Returns:
      The new position after seeking.
      Throws:
      IOException - Thrown if there is an IO error.
    • flush

      public void flush()
      Flush the buffers to the associated file.
      Specified by:
      flush in class RandomAccessStream
    • close

      public void close() throws IOException
      Close this stream and associated resources.
      Specified by:
      close in class RandomAccessStream
      Throws:
      IOException - Thrown if there is an IO error.
    • reset

      public void reset() throws IOException
      Reset the stream.
      Throws:
      IOException - Thrown if there is an IO error.