Interface ISequentialInStream

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

public interface ISequentialInStream

Interface used to operate with sequential input stream.

Boris Brodski

Method Summary
 int read(byte[] data)
          Reads at least 1 and maximum data.length bytes from the in-stream.
Methods inherited from interface

Method Detail


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 less than number of remaining bytes in stream and less then data.length. You must call read() function in loop, if you need 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.

data - buffer to get read data
amount of bytes written in the data array. 0 - represents end of stream.
SevenZipException - in error case. If this method ends with an exception, the current operation will be reported to 7-Zip as failed. There are no guarantee, that there are no further call back methods will get called. The first and last thrown exceptions will be saved and thrown later on from the originally called method such as ISevenZipInArchive.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.