keep archiving formats and compression formats in groups
Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/3af95ce3 Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/3af95ce3 Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/3af95ce3 Branch: refs/heads/master Commit: 3af95ce3af8b6b40951ecbd1c3d6d535ad52a6db Parents: 29c3f35 Author: Stefan Bodewig <bode...@apache.org> Authored: Sat Feb 4 17:13:46 2017 +0100 Committer: Stefan Bodewig <bode...@apache.org> Committed: Sat Feb 4 17:13:46 2017 +0100 ---------------------------------------------------------------------- src/site/xdoc/examples.xml | 182 ++++++++++++++++++++-------------------- 1 file changed, 91 insertions(+), 91 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/3af95ce3/src/site/xdoc/examples.xml ---------------------------------------------------------------------- diff --git a/src/site/xdoc/examples.xml b/src/site/xdoc/examples.xml index bfb39fc..062b8d3 100644 --- a/src/site/xdoc/examples.xml +++ b/src/site/xdoc/examples.xml @@ -376,6 +376,97 @@ LOOP UNTIL entry.getSize() HAS BEEN READ { ]]></source> </subsection> + <subsection name="7z"> + + <p>Note that Commons Compress currently only supports a subset + of compression and encryption algorithms used for 7z archives. + For writing only uncompressed entries, LZMA, LZMA2, BZIP2 and + Deflate are supported - reading also supports + AES-256/SHA-256.</p> + + <p>Multipart archives are not supported at all.</p> + + <p>7z archives can use multiple compression and encryption + methods as well as filters combined as a pipeline of methods + for its entries. Prior to Compress 1.8 you could only specify + a single method when creating archives - reading archives + using more than one method has been possible before. Starting + with Compress 1.8 it is possible to configure the full + pipeline using the <code>setContentMethods</code> method of + <code>SevenZOutputFile</code>. Methods are specified in the + order they appear inside the pipeline when creating the + archive, you can also specify certain parameters for some of + the methods - see the Javadocs of + <code>SevenZMethodConfiguration</code> for details.</p> + + <p>When reading entries from an archive the + <code>getContentMethods</code> method of + <code>SevenZArchiveEntry</code> will properly represent the + compression/encryption/filter methods but may fail to + determine the configuration options used. As of Compress 1.8 + only the dictionary size used for LZMA2 can be read.</p> + + <p>Currently solid compression - compressing multiple files + as a single block to benefit from patterns repeating accross + files - is only supported when reading archives. This also + means compression ratio will likely be worse when using + Commons Compress compared to the native 7z executable.</p> + + <p>Reading or writing requires a + <code>SeekableByteChannel</code> that will be obtained + transparently when reading from or writing to a file. The + class + <code>org.apache.commons.compress.utils.SeekableInMemoryByteChannel</code> + allows you to read from or write to an in-memory archive.</p> + + <p>Adding an entry to a 7z archive:</p> +<source><![CDATA[ +SevenZOutputFile sevenZOutput = new SevenZOutputFile(file); +SevenZArchiveEntry entry = sevenZOutput.createArchiveEntry(fileToArchive, name); +sevenZOutput.putArchiveEntry(entry); +sevenZOutput.write(contentOfEntry); +sevenZOutput.closeArchiveEntry(); +]]></source> + + <p>Uncompressing a given 7z archive (you would + certainly add exception handling and make sure all streams + get closed properly):</p> +<source><![CDATA[ +SevenZFile sevenZFile = new SevenZFile(new File("archive.7z")); +SevenZArchiveEntry entry = sevenZFile.getNextEntry(); +byte[] content = new byte[entry.getSize()]; +LOOP UNTIL entry.getSize() HAS BEEN READ { + sevenZFile.read(content, offset, content.length - offset); +} +]]></source> + + <p>Uncompressing a given in-memory 7z archive:</p> + <source><![CDATA[ +byte[] inputData; // 7z archive contents +SeekableInMemoryByteChannel inMemoryByteChannel = new SeekableInMemoryByteChannel(inputData); +SevenZFile sevenZFile = new SevenZFile(inMemoryByteChannel); +SevenZArchiveEntry entry = sevenZFile.getNextEntry(); +sevenZFile.read(); // read current entry's data +]]></source> + </subsection> + + <subsection name="arj"> + + <p>Note that Commons Compress doesn't support compressed, + encrypted or multi-volume ARJ archives, yet.</p> + + <p>Uncompressing a given arj archive (you would + certainly add exception handling and make sure all streams + get closed properly):</p> +<source><![CDATA[ +ArjArchiveEntry entry = arjInput.getNextEntry(); +byte[] content = new byte[entry.getSize()]; +LOOP UNTIL entry.getSize() HAS BEEN READ { + arjInput.read(content, offset, content.length - offset); +} +]]></source> + </subsection> + <subsection name="bzip2"> <p>Note that <code>BZipCompressorOutputStream</code> keeps @@ -662,97 +753,6 @@ in.close(); </subsection> - <subsection name="7z"> - - <p>Note that Commons Compress currently only supports a subset - of compression and encryption algorithms used for 7z archives. - For writing only uncompressed entries, LZMA, LZMA2, BZIP2 and - Deflate are supported - reading also supports - AES-256/SHA-256.</p> - - <p>Multipart archives are not supported at all.</p> - - <p>7z archives can use multiple compression and encryption - methods as well as filters combined as a pipeline of methods - for its entries. Prior to Compress 1.8 you could only specify - a single method when creating archives - reading archives - using more than one method has been possible before. Starting - with Compress 1.8 it is possible to configure the full - pipeline using the <code>setContentMethods</code> method of - <code>SevenZOutputFile</code>. Methods are specified in the - order they appear inside the pipeline when creating the - archive, you can also specify certain parameters for some of - the methods - see the Javadocs of - <code>SevenZMethodConfiguration</code> for details.</p> - - <p>When reading entries from an archive the - <code>getContentMethods</code> method of - <code>SevenZArchiveEntry</code> will properly represent the - compression/encryption/filter methods but may fail to - determine the configuration options used. As of Compress 1.8 - only the dictionary size used for LZMA2 can be read.</p> - - <p>Currently solid compression - compressing multiple files - as a single block to benefit from patterns repeating accross - files - is only supported when reading archives. This also - means compression ratio will likely be worse when using - Commons Compress compared to the native 7z executable.</p> - - <p>Reading or writing requires a - <code>SeekableByteChannel</code> that will be obtained - transparently when reading from or writing to a file. The - class - <code>org.apache.commons.compress.utils.SeekableInMemoryByteChannel</code> - allows you to read from or write to an in-memory archive.</p> - - <p>Adding an entry to a 7z archive:</p> -<source><![CDATA[ -SevenZOutputFile sevenZOutput = new SevenZOutputFile(file); -SevenZArchiveEntry entry = sevenZOutput.createArchiveEntry(fileToArchive, name); -sevenZOutput.putArchiveEntry(entry); -sevenZOutput.write(contentOfEntry); -sevenZOutput.closeArchiveEntry(); -]]></source> - - <p>Uncompressing a given 7z archive (you would - certainly add exception handling and make sure all streams - get closed properly):</p> -<source><![CDATA[ -SevenZFile sevenZFile = new SevenZFile(new File("archive.7z")); -SevenZArchiveEntry entry = sevenZFile.getNextEntry(); -byte[] content = new byte[entry.getSize()]; -LOOP UNTIL entry.getSize() HAS BEEN READ { - sevenZFile.read(content, offset, content.length - offset); -} -]]></source> - - <p>Uncompressing a given in-memory 7z archive:</p> - <source><![CDATA[ -byte[] inputData; // 7z archive contents -SeekableInMemoryByteChannel inMemoryByteChannel = new SeekableInMemoryByteChannel(inputData); -SevenZFile sevenZFile = new SevenZFile(inMemoryByteChannel); -SevenZArchiveEntry entry = sevenZFile.getNextEntry(); -sevenZFile.read(); // read current entry's data -]]></source> - </subsection> - - <subsection name="arj"> - - <p>Note that Commons Compress doesn't support compressed, - encrypted or multi-volume ARJ archives, yet.</p> - - <p>Uncompressing a given arj archive (you would - certainly add exception handling and make sure all streams - get closed properly):</p> -<source><![CDATA[ -ArjArchiveEntry entry = arjInput.getNextEntry(); -byte[] content = new byte[entry.getSize()]; -LOOP UNTIL entry.getSize() HAS BEEN READ { - arjInput.read(content, offset, content.length - offset); -} -]]></source> - </subsection> - <subsection name="Snappy"> <p>There are two different "formats" used for <a