Class ArArchiveOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class ArArchiveOutputStream
    extends ArchiveOutputStream
    Implements the "ar" archive format as an output stream.
    • 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_BSD

        public static final int LONGFILE_BSD
        BSD ar extensions are used to store long file names in the archive.
        See Also:
        Constant Field Values
      • out

        private final java.io.OutputStream out
      • entryOffset

        private long entryOffset
      • haveUnclosedEntry

        private boolean haveUnclosedEntry
      • longFileMode

        private int longFileMode
      • finished

        private boolean finished
        indicates if this archive is finished
    • Constructor Detail

      • ArArchiveOutputStream

        public ArArchiveOutputStream​(java.io.OutputStream pOut)
    • Method Detail

      • setLongFileMode

        public void setLongFileMode​(int longFileMode)
        Set the long file mode. This can be LONGFILE_ERROR(0) or LONGFILE_BSD(1). This specifies the treatment of long file names (names >= 16). Default is LONGFILE_ERROR.
        Parameters:
        longFileMode - the mode to use
        Since:
        1.3
      • writeArchiveHeader

        private long writeArchiveHeader()
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • closeArchiveEntry

        public void closeArchiveEntry()
                               throws java.io.IOException
        Description copied from class: ArchiveOutputStream
        Closes the archive entry, writing any trailer information that may be required.
        Specified by:
        closeArchiveEntry in class ArchiveOutputStream
        Throws:
        java.io.IOException - if an I/O error occurs
      • fill

        private long fill​(long pOffset,
                          long pNewOffset,
                          char pFill)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • write

        private long write​(java.lang.String data)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeEntryHeader

        private long writeEntryHeader​(ArArchiveEntry pEntry)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Calls finish if necessary, and then closes the OutputStream
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.OutputStream
        Throws:
        java.io.IOException
      • createArchiveEntry

        public ArchiveEntry createArchiveEntry​(java.io.File inputFile,
                                               java.lang.String entryName)
                                        throws java.io.IOException
        Description copied from class: ArchiveOutputStream
        Create an archive entry using the inputFile and entryName provided.
        Specified by:
        createArchiveEntry in class ArchiveOutputStream
        Parameters:
        inputFile - the file to create the entry from
        entryName - name to use for the entry
        Returns:
        the ArchiveEntry set up with details from the file
        Throws:
        java.io.IOException - if an I/O error occurs
      • finish

        public void finish()
                    throws java.io.IOException
        Description copied from class: ArchiveOutputStream
        Finishes the addition of entries to this stream, without closing it. Additional data can be written, if the format supports it.
        Specified by:
        finish in class ArchiveOutputStream
        Throws:
        java.io.IOException - if the user forgets to close the entry.