SevenZOutputFile
Date: 2017-02-08

org.apache.commons.compress.archivers.sevenz

## Class SevenZOutputFile

- java.lang.Object
- - org.apache.commons.compress.archivers.sevenz.SevenZOutputFile

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

      public class SevenZOutputFile
      extends java.lang.Object
      implements java.io.Closeable

  Writes a 7z file.
  Since:
    1.6

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SevenZOutputFile(java.io.File filename)` Opens file to write a 7z archive to.
    `SevenZOutputFile(java.nio.channels.SeekableByteChannel channel)` Prepares channel to write a 7z archive to.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the archive, calling `finish()` if necessary.
    `void` | `closeArchiveEntry()` Closes the archive entry.
    `SevenZArchiveEntry` | `createArchiveEntry(java.io.File inputFile, java.lang.String entryName)` Create an archive entry using the inputFile and entryName provided.
    `void` | `finish()` Finishes the addition of entries to this archive, without closing it.
    `void` | `putArchiveEntry(ArchiveEntry archiveEntry)` Records an archive entry to add.
    `void` | `setContentCompression(SevenZMethod method)` Sets the default compression method to use for entry contents - the default is LZMA2.
    `void` | `setContentMethods(java.lang.Iterable<? extends SevenZMethodConfiguration> methods)` Sets the default (compression) methods to use for entry contents - the default is LZMA2.
    `void` | `write(byte[] b)` Writes a byte array to the current archive entry.
    `void` | `write(byte[] b, int off, int len)` Writes part of a byte array to the current archive entry.
    `void` | `write(int b)` Writes a byte to the current archive entry.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SevenZOutputFile

          public SevenZOutputFile(java.io.File filename)
                           throws java.io.IOException

      Opens file to write a 7z archive to.
      Parameters:
        `filename` - the file to write to
      Throws:
        `java.io.IOException` - if opening the file fails

    - #### SevenZOutputFile

          public SevenZOutputFile(java.nio.channels.SeekableByteChannel channel)
                           throws java.io.IOException

      Prepares channel to write a 7z archive to.

      `SeekableInMemoryByteChannel` allows you to write to an in-memory archive.

      Parameters:
        `channel` - the channel to write to
      Throws:
        `java.io.IOException` - if the channel cannot be positioned properly
      Since:
        1.13

  - ### Method Detail

    - #### setContentCompression

          public void setContentCompression(SevenZMethod method)

      Sets the default compression method to use for entry contents - the default is LZMA2.

      Currently only `SevenZMethod.COPY`, `SevenZMethod.LZMA2`, `SevenZMethod.BZIP2` and `SevenZMethod.DEFLATE` are supported.

      This is a short form for passing a single-element iterable to `setContentMethods(java.lang.Iterable<? extends org.apache.commons.compress.archivers.sevenz.SevenZMethodConfiguration>)`.

      Parameters:
        `method` - the default compression method

    - #### setContentMethods

          public void setContentMethods(java.lang.Iterable<? extends SevenZMethodConfiguration> methods)

      Sets the default (compression) methods to use for entry contents - the default is LZMA2.

      Currently only `SevenZMethod.COPY`, `SevenZMethod.LZMA2`, `SevenZMethod.BZIP2` and `SevenZMethod.DEFLATE` are supported.

      The methods will be consulted in iteration order to create the final output.

      Parameters:
        `methods` - the default (compression) methods
      Since:
        1.8

    - #### close

          public void close()
                     throws java.io.IOException

      Closes the archive, calling `finish()` if necessary.
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Throws:
        `java.io.IOException` - on error

    - #### createArchiveEntry

          public SevenZArchiveEntry createArchiveEntry(java.io.File inputFile,
                                              java.lang.String entryName)
                                                throws java.io.IOException

      Create an archive entry using the inputFile and entryName provided.
      Parameters:
        `inputFile` - file to create an entry from
        `entryName` - the name to use
      Returns:
        the ArchiveEntry set up with details from the file
      Throws:
        `java.io.IOException` - on error

    - #### putArchiveEntry

          public void putArchiveEntry(ArchiveEntry archiveEntry)
                               throws java.io.IOException

      Records an archive entry to add. The caller must then write the content to the archive and call `closeArchiveEntry()` to complete the process.
      Parameters:
        `archiveEntry` - describes the entry
      Throws:
        `java.io.IOException` - on error

    - #### closeArchiveEntry

          public void closeArchiveEntry()
                                 throws java.io.IOException

      Closes the archive entry.
      Throws:
        `java.io.IOException` - on error

    - #### write

          public void write(int b)
                     throws java.io.IOException

      Writes a byte to the current archive entry.
      Parameters:
        `b` - The byte to be written.
      Throws:
        `java.io.IOException` - on error

    - #### write

          public void write(byte[] b)
                     throws java.io.IOException

      Writes a byte array to the current archive entry.
      Parameters:
        `b` - The byte array to be written.
      Throws:
        `java.io.IOException` - on error

    - #### write

          public void write(byte[] b,
                   int off,
                   int len)
                     throws java.io.IOException

      Writes part of a byte array to the current archive entry.
      Parameters:
        `b` - The byte array to be written.
        `off` - offset into the array to start writing from
        `len` - number of bytes to write
      Throws:
        `java.io.IOException` - on error

    - #### finish

          public void finish()
                      throws java.io.IOException

      Finishes the addition of entries to this archive, without closing it.
      Throws:
        `java.io.IOException` - if archive is already closed.