in without a memory usage limit.
This constructor reads and parses the XZ Stream Header (12 bytes)
from in. The header of the first Block is not read
until read is called.
@param in input stream from which XZ-compressed
data is read
@throws XZFormatException
input is not in the XZ format
@throws CorruptedInputException
XZ header CRC32 doesn't match
@throws UnsupportedOptionsException
XZ header is valid but specifies options
not supported by this implementation
@throws EOFException
less than 12 bytes of input was available
from in
@throws IOException may be thrown by in
in with an optional memory usage limit.
This is identical to SingleXZInputStream(InputStream)
except that this takes also the memoryLimit argument.
@param in input stream from which XZ-compressed
data is read
@param memoryLimit memory usage limit in kibibytes (KiB)
or -1 to impose no
memory usage limit
@throws XZFormatException
input is not in the XZ format
@throws CorruptedInputException
XZ header CRC32 doesn't match
@throws UnsupportedOptionsException
XZ header is valid but specifies options
not supported by this implementation
@throws EOFException
less than 12 bytes of input was available
from in
@throws IOException may be thrown by in
Reading lots of data with read() from this input stream
may be inefficient. Wrap it in {@link java.io.BufferedInputStream}
if you need to read lots of data one byte at a time.
@return the next decompressed byte, or -1
to indicate the end of the compressed stream
@throws CorruptedInputException
@throws UnsupportedOptionsException
@throws MemoryLimitException
@throws XZIOException if the stream has been closed
@throws EOFException
compressed input is truncated or corrupt
@throws IOException may be thrown by in
If len is zero, no bytes are read and 0
is returned. Otherwise this will try to decompress len
bytes of uncompressed data. Less than len bytes may
be read only in the following situations:
len
len will immediately
buf
-1 to indicate
in
CorruptedInputException may getin.close().in.close()
The decompression stops after the first XZ Stream has been decompressed,
and the read position in the input stream is left at the first byte
after the end of the XZ Stream. This can be useful when XZ data has
been stored inside some other file format or protocol.
Unless you know what you are doing, don't use this class to decompress
standalone .xz files. For that purpose, use
XZInputStream.When uncompressed size is known beforehand
If you are decompressing complete XZ streams and your application knows
exactly how much uncompressed data there should be, it is good to try
reading one more byte by calling
read()and checkingthat it returns
-1. This way the decompressor will parse thefile footers and verify the integrity checks, giving the caller more
confidence that the uncompressed data is valid.
@see XZInputStream