Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.compress.archivers.tar
Class TarArchiveOutputStream

    java.lang.Object
      java.io.OutputStream
          org.apache.commons.compress.archivers.ArchiveOutputStream
              org.apache.commons.compress.archivers.tar.TarArchiveOutputStream

All Implemented Interfaces:
  Closeable, Flushable

    public class TarArchiveOutputStream

extends ArchiveOutputStream

The TarOutputStream writes a UNIX tar archive as an OutputStream. Methods are provided to put entries, and then write their contents by writing to this stream using write().

This class is not thread-safe

Field Summary
`protected org.apache.commons.compress.archivers.tar.TarBuffer` | `buffer`
`static int` | `LONGFILE_ERROR` Fail if a long file name is required in the archive.
`static int` | `LONGFILE_GNU` GNU tar extensions are used to store long file names in the archive.
`static int` | `LONGFILE_TRUNCATE` Long paths will be truncated in the archive.

Constructor Summary
`TarArchiveOutputStream(OutputStream os)` Constructor for TarInputStream.
`TarArchiveOutputStream(OutputStream os, int blockSize)` Constructor for TarInputStream.
`TarArchiveOutputStream(OutputStream os, int blockSize, int recordSize)` Constructor for TarInputStream.

Method Summary
`void` | `close()` Closes the underlying OutputStream.
`void` | `closeArchiveEntry()` Close an entry.
`ArchiveEntry` | `createArchiveEntry(File inputFile, String entryName)` Create an archive entry using the inputFile and entryName provided.
`void` | `finish()` Ends the TAR archive without closing the underlying OutputStream.
`void` | `flush()`
`int` | `getRecordSize()` Get the record size being used by this stream's TarBuffer.
`void` | `putArchiveEntry(ArchiveEntry archiveEntry)` Put an entry on the output stream.
`void` | `setLongFileMode(int longFileMode)` Set the long file mode.
`void` | `write(byte[] wBuf, int wOffset, int numToWrite)` Writes bytes to the current tar archive entry.

Methods inherited from class org.apache.commons.compress.archivers.ArchiveOutputStream
`canWriteEntryData, count, count, getBytesWritten, getCount, write`

Methods inherited from class java.io.OutputStream
`write`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### LONGFILE_ERROR

    public static final int LONGFILE_ERROR

  Fail if a long file name is required in the archive.

  See Also:
    Constant Field Values

### LONGFILE_TRUNCATE

    public static final int LONGFILE_TRUNCATE

  Long paths will be truncated in the archive.

  See Also:
    Constant Field Values

### LONGFILE_GNU

    public static final int LONGFILE_GNU

  GNU tar extensions are used to store long file names in the archive.

  See Also:
    Constant Field Values

### buffer

    protected final org.apache.commons.compress.archivers.tar.TarBuffer buffer

Constructor Detail

### TarArchiveOutputStream

    public TarArchiveOutputStream(OutputStream os)

  Constructor for TarInputStream.

  Parameters:
    `os` - the output stream to use

### TarArchiveOutputStream

    public TarArchiveOutputStream(OutputStream os,
                                  int blockSize)

  Constructor for TarInputStream.

  Parameters:
    `os` - the output stream to use
    `blockSize` - the block size to use

### TarArchiveOutputStream

    public TarArchiveOutputStream(OutputStream os,
                                  int blockSize,
                                  int recordSize)

  Constructor for TarInputStream.

  Parameters:
    `os` - the output stream to use
    `blockSize` - the block size to use
    `recordSize` - the record size to use

Method Detail

### setLongFileMode

    public void setLongFileMode(int longFileMode)

  Set the long file mode. This can be LONGFILE_ERROR(0), LONGFILE_TRUNCATE(1) or LONGFILE_GNU(2). This specifies the treatment of long file names (names >= TarConstants.NAMELEN). Default is LONGFILE_ERROR.

  Parameters:
    `longFileMode` - the mode to use

### finish

    public void finish()
                throws IOException

  Ends the TAR archive without closing the underlying OutputStream. An archive consists of a series of file entries terminated by an end-of-archive entry, which consists of two 512 blocks of zero bytes. POSIX.1 requires two EOF records, like some other implementations.

  Specified by:
    `finish` in class `ArchiveOutputStream`
  Throws:
    `IOException` - on error

### close

    public void close()
               throws IOException

  Closes the underlying OutputStream.

  Specified by:
    `close` in interface `Closeable`
  Overrides:
    `close` in class `OutputStream`
  Throws:
    `IOException` - on error

### getRecordSize

    public int getRecordSize()

  Get the record size being used by this stream's TarBuffer.

  Returns:
    The TarBuffer record size.

### putArchiveEntry

    public void putArchiveEntry(ArchiveEntry archiveEntry)
                         throws IOException

  Put an entry on the output stream. This writes the entry's header record and positions the output stream for writing the contents of the entry. Once this method is called, the stream is ready for calls to write() to write the entry's contents. Once the contents are written, closeArchiveEntry() MUST be called to ensure that all buffered data is completely written to the output stream.

  Specified by:
    `putArchiveEntry` in class `ArchiveOutputStream`
  Parameters:
    `archiveEntry` - The TarEntry to be written to the archive.
  Throws:
    `IOException` - on error
    `ClassCastException` - if archiveEntry is not an instance of TarArchiveEntry

### closeArchiveEntry

    public void closeArchiveEntry()
                           throws IOException

  Close an entry. This method MUST be called for all file entries that contain data. The reason is that we must buffer data written to the stream in order to satisfy the buffer's record based writes. Thus, there may be data fragments still being assembled that must be written to the output stream before this entry is closed and the next entry written.

  Specified by:
    `closeArchiveEntry` in class `ArchiveOutputStream`
  Throws:
    `IOException` - on error

### write

    public void write(byte[] wBuf,
                      int wOffset,
                      int numToWrite)
               throws IOException

  Writes bytes to the current tar archive entry. This method is aware of the current entry and will throw an exception if you attempt to write bytes past the length specified for the current entry. The method is also (painfully) aware of the record buffering required by TarBuffer, and manages buffers that are not a multiple of recordsize in length, including assembling records from small buffers.

  Overrides:
    `write` in class `OutputStream`
  Parameters:
    `wBuf` - The buffer to write to the archive.
    `wOffset` - The offset in the buffer from which to get bytes.
    `numToWrite` - The number of bytes to write.
  Throws:
    `IOException` - on error

### flush

    public void flush()
               throws IOException

  Specified by:
    `flush` in interface `Flushable`
  Overrides:
    `flush` in class `OutputStream`
  Throws:
    `IOException`

### createArchiveEntry

    public ArchiveEntry createArchiveEntry(File inputFile,
                                           String entryName)
                                    throws IOException

  Create an archive entry using the inputFile and entryName provided.

  Specified by:
    `createArchiveEntry` in class `ArchiveOutputStream`
  Returns:
    the ArchiveEntry set up with details from the file
  Throws:
    `IOException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010 The Apache Software Foundation. All Rights Reserved.