Interface ISequentialInStream

All Superinterfaces:
AutoCloseable, Closeable
All Known Subinterfaces:
IInStream
All Known Implementing Classes:
ByteArrayStream, InputStreamSequentialInStream, RandomAccessFileInStream, SequentialInStreamImpl, VolumedArchiveInStream

public interface ISequentialInStream extends Closeable
Interface used to operate with a sequential input stream.
Since:
4.65-1
Author:
Boris Brodski
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    read(byte[] data)
    Reads at least 1 and maximum data.length bytes from the in-stream.

    Methods inherited from interface java.io.Closeable

    close
  • Method Details

    • read

      int read(byte[] data) throws SevenZipException
      Reads at least 1 and maximum data.length bytes from the in-stream. If data.length == 0 0 should be returned. If data.length != 0, then return value 0 indicates end-of-stream (EOF). This means no more bytes can be read from the stream.
      This function is allowed to read fewer than the number of remaining bytes in the stream and fewer than data.length. You must call the read() function in a loop if you need an exact amount of data.

      Note: depending on the archive format and the data size this method may be called from different threads. Synchronized implementation may be required.
      Parameters:
      data - buffer to get read data
      Returns:
      number of bytes read into the data array; 0 indicates end of stream.
      Throws:
      SevenZipException - in error case. If this method ends with an exception, the current operation will be reported to 7-Zip as failed. There is no guarantee that no further callback methods will be called. The first and last thrown exceptions will be saved and thrown later on from the originally called method such as IInArchive.extract() or SevenZip.openInArchive(). Up to four exceptions depending on the situation can be saved for further analysis. See SevenZipException and SevenZipException.printStackTraceExtended() for details.