Class ArjArchiveInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.apache.commons.compress.archivers.ArchiveInputStream<ArjArchiveEntry>
org.apache.commons.compress.archivers.arj.ArjArchiveInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
Implements the "arj" archive format as an InputStream.
- Since:
- 1.6
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private static final int
private InputStream
private LocalFileHeader
private final DataInputStream
private static final String
private final MainHeader
Fields inherited from class java.io.FilterInputStream
in
-
Constructor Summary
ConstructorsConstructorDescriptionArjArchiveInputStream
(InputStream inputStream) Constructs the ArjInputStream, taking ownership of the inputStream that is passed in, and using the CP437 character encoding.ArjArchiveInputStream
(InputStream inputStream, String charsetName) Constructs the ArjInputStream, taking ownership of the inputStream that is passed in. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Whether this stream is able to read the given entry.void
close()
Gets the archive's comment.Gets the archive's recorded name.Gets the next Archive Entry in this Stream.static boolean
matches
(byte[] signature, int length) Checks if the signature matches what is expected for an arj file.int
read
(byte[] b, int off, int len) private int
read16
(DataInputStream dataIn) private int
read32
(DataInputStream dataIn) private int
read8
(DataInputStream dataIn) private void
readExtraData
(int firstHeaderSize, DataInputStream firstHeader, LocalFileHeader localFileHeader) private byte[]
private LocalFileHeader
private MainHeader
private byte[]
readRange
(InputStream in, int len) private String
readString
(DataInputStream dataIn) Methods inherited from class org.apache.commons.compress.archivers.ArchiveInputStream
count, count, forEach, getBytesRead, getCharset, getCount, iterator, mark, markSupported, pushedBackBytes, read, reset
Methods inherited from class java.io.FilterInputStream
available, read, skip
-
Field Details
-
ENCODING_NAME
- See Also:
-
ARJ_MAGIC_1
private static final int ARJ_MAGIC_1- See Also:
-
ARJ_MAGIC_2
private static final int ARJ_MAGIC_2- See Also:
-
dis
-
mainHeader
-
currentLocalFileHeader
-
currentInputStream
-
-
Constructor Details
-
ArjArchiveInputStream
Constructs the ArjInputStream, taking ownership of the inputStream that is passed in, and using the CP437 character encoding.- Parameters:
inputStream
- the underlying stream, whose ownership is taken- Throws:
ArchiveException
- if an exception occurs while reading
-
ArjArchiveInputStream
Constructs the ArjInputStream, taking ownership of the inputStream that is passed in.- Parameters:
inputStream
- the underlying stream, whose ownership is takencharsetName
- the charset used for file names and comments in the archive. May benull
to use the platform default.- Throws:
ArchiveException
- if an exception occurs while reading
-
-
Method Details
-
matches
public static boolean matches(byte[] signature, int length) Checks if the signature matches what is expected for an arj file.- Parameters:
signature
- the bytes to checklength
- the number of bytes to check- Returns:
- true, if this stream is an arj archive stream, false otherwise
-
canReadEntryData
Description copied from class:ArchiveInputStream
Whether this stream is able to read the given entry.Some archive formats support variants or details that are not supported (yet).
- Overrides:
canReadEntryData
in classArchiveInputStream<ArjArchiveEntry>
- Parameters:
ae
- the entry to test- Returns:
- This implementation always returns true.
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classFilterInputStream
- Throws:
IOException
-
getArchiveComment
Gets the archive's comment.- Returns:
- the archive's comment
-
getArchiveName
Gets the archive's recorded name.- Returns:
- the archive's name
-
getNextEntry
Description copied from class:ArchiveInputStream
Gets the next Archive Entry in this Stream.- Specified by:
getNextEntry
in classArchiveInputStream<ArjArchiveEntry>
- Returns:
- the next entry, or
null
if there are no more entries. - Throws:
IOException
- if the next entry could not be read.
-
read
- Overrides:
read
in classFilterInputStream
- Throws:
IOException
-
read16
- Throws:
IOException
-
read32
- Throws:
IOException
-
read8
- Throws:
IOException
-
readExtraData
private void readExtraData(int firstHeaderSize, DataInputStream firstHeader, LocalFileHeader localFileHeader) throws IOException - Throws:
IOException
-
readHeader
- Throws:
IOException
-
readLocalFileHeader
- Throws:
IOException
-
readMainHeader
- Throws:
IOException
-
readRange
- Throws:
IOException
-
readString
- Throws:
IOException
-