public class SevenZFile extends Objectimplements Closeable
The 7z file format is a flexible container that can contain many compression and encryption types, but at the moment only only Copy, LZMA, LZMA2, BZIP2, Deflate and AES-256 + SHA-256 are supported.
The format is very Windows/Intel specific, so it uses little-endian byte order, doesn't store user/group or permission bits, and represents times using NTFS timestamps (100 nanosecond units since 1 January 1601). Hence the official tools recommend against using it for backup purposes on *nix, and recommend .tar.7z or .tar.lzma or .tar.xz instead.
Both the header and file contents may be compressed and/or encrypted. With both encrypted, neither file names nor file contents can be read, but the use of encryption isn't plausibly deniable.
| Constructor and Description |
|---|
SevenZFile(File
Reads a file as unecrypted 7z archive
|
SevenZFile(File
Reads a file as 7z archive
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes the archive.
|
SevenZArchiveEntry |
getNextEntry()
Returns the next Archive Entry in this archive.
|
static boolean |
matches(byte[] signature, int length)
Checks if the signature matches what is expected for a 7z file.
|
int |
read()
Reads a byte of data.
|
int |
read(byte[] b)
Reads data into an array of bytes.
|
int |
read(byte[] b, int off, int len)
Reads data into an array of bytes.
|
public SevenZFile(Filefilename, byte[] password) throws IOException
filename - the file to read
password - optional password if the archive is encrypted - the byte array is supposed to be the UTF16-LE encoded representation of the password.
IOException - if reading the archive fails
public SevenZFile(Filefilename) throws IOException
filename - the file to read
IOException - if reading the archive fails
public void close()
throws IOException
close in interface
Closeable
close in interface
AutoCloseable
IOException - if closing the file fails
public SevenZArchiveEntrygetNextEntry() throws IOException
null if there are no more entries
IOException - if the next entry could not be read
public int read()
throws IOException
IOException - if an I/O error has occurred
public int read(byte[] b)
throws IOException
b - the array to write data to
IOException - if an I/O error has occurred
public int read(byte[] b,
int off,
int len)
throws IOException
b - the array to write data to
off - offset into the buffer to start filling at
len - of bytes to read
IOException - if an I/O error has occurred
public static boolean matches(byte[] signature,
int length)
signature - the bytes to check
length - the number of bytes to check