Package com.mku.file

Class JavaFileStream


public class JavaFileStream extends RandomAccessStream
An advanced Salmon File Stream implementation for java files. This class is used internally for random file access of physical (real) files.
  • Constructor Details

    • JavaFileStream

      public JavaFileStream(JavaFile file, String mode) throws FileNotFoundException
      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
      Throws:
      FileNotFoundException - Thrown if file not found
  • Method Details

    • canRead

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

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

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

      public long length()
      Get the length of the stream. This is the same as the backed file.
      Specified by:
      length 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.