Package net.sf.sevenzipjbinding
Interface ISequentialInStream
- All Superinterfaces:
AutoCloseable,Closeable
- All Known Subinterfaces:
IInStream
- All Known Implementing Classes:
ByteArrayStream,InputStreamSequentialInStream,RandomAccessFileInStream,SequentialInStreamImpl,VolumedArchiveInStream
Interface used to operate with a sequential input stream.
- Since:
- 4.65-1
- Author:
- Boris Brodski
-
Method Summary
Modifier and TypeMethodDescriptionintread(byte[] data) Reads at least 1 and maximumdata.lengthbytes from the in-stream.
-
Method Details
-
read
Reads at least 1 and maximumdata.lengthbytes from the in-stream. Ifdata.length == 00 should be returned. Ifdata.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 thandata.length. You must call theread()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
dataarray; 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 asIInArchive.extract()orSevenZip.openInArchive(). Up to four exceptions depending on the situation can be saved for further analysis. SeeSevenZipExceptionandSevenZipException.printStackTraceExtended()for details.
-