Class ArchiveInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.commons.compress.archivers.ArchiveInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
ArArchiveInputStream,ArjArchiveInputStream,CpioArchiveInputStream,DumpArchiveInputStream,TarArchiveInputStream,ZipArchiveInputStream
public abstract class ArchiveInputStream extends java.io.InputStreamArchive input streams MUST override theInputStream.read(byte[], int, int)- orread()- method so that reading from the stream generates EOF for the end of data in each entry as well as at the end of the file proper.The
getNextEntry()method is used to reset the input stream ready for reading the data from the next entry.The input stream classes must also implement a method with the signature:
public static boolean matches(byte[] signature, int length)
which is used by theArchiveStreamFactoryto autodetect the archive type from the first few bytes of a stream.
-
-
Constructor Summary
Constructors Constructor Description ArchiveInputStream()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleancanReadEntryData(ArchiveEntry archiveEntry)Whether this stream is able to read the given entry.longgetBytesRead()Returns the current number of bytes read from this stream.intgetCount()Deprecated.this method may yield wrong results for large archives, use #getBytesRead insteadabstract ArchiveEntrygetNextEntry()Returns the next Archive Entry in this Stream.intread()Reads a byte of data.
-
-
-
Method Detail
-
getNextEntry
public abstract ArchiveEntry getNextEntry() throws java.io.IOException
Returns the next Archive Entry in this Stream.- Returns:
- the next entry,
or
nullif there are no more entries - Throws:
java.io.IOException- if the next entry could not be read
-
read
public int read() throws java.io.IOExceptionReads a byte of data. This method will block until enough input is available. Simply calls theInputStream.read(byte[], int, int)method. MUST be overridden if theInputStream.read(byte[], int, int)method is not overridden; may be overridden otherwise.- Specified by:
readin classjava.io.InputStream- Returns:
- the byte read, or -1 if end of input is reached
- Throws:
java.io.IOException- if an I/O error has occurred
-
getCount
@Deprecated public int getCount()
Deprecated.this method may yield wrong results for large archives, use #getBytesRead insteadReturns the current number of bytes read from this stream.- Returns:
- the number of read bytes
-
getBytesRead
public long getBytesRead()
Returns the current number of bytes read from this stream.- Returns:
- the number of read bytes
- Since:
- 1.1
-
canReadEntryData
public boolean canReadEntryData(ArchiveEntry archiveEntry)
Whether this stream is able to read the given entry.Some archive formats support variants or details that are not supported (yet).
- Parameters:
archiveEntry- the entry to test- Returns:
- This implementation always returns true.
- Since:
- 1.1
-
-