Class ArArchiveOutputStream
java.lang.Object
java.io.OutputStream
org.apache.commons.compress.archivers.ArchiveOutputStream
org.apache.commons.compress.archivers.ar.ArArchiveOutputStream
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
Implements the "ar" archive format as an output stream.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate long
private boolean
indicates if this archive is finishedprivate boolean
static final int
BSD ar extensions are used to store long file names in the archive.static final int
Fail if a long file name is required in the archive.private int
private final OutputStream
private ArArchiveEntry
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Calls finish if necessary, and then closes the OutputStreamvoid
Closes the archive entry, writing any trailer information that may be required.createArchiveEntry
(File inputFile, String entryName) Create an archive entry using the inputFile and entryName provided.createArchiveEntry
(Path inputPath, String entryName, LinkOption... options) Create an archive entry using the inputPath and entryName provided.private long
fill
(long pOffset, long pNewOffset, char pFill) void
finish()
Finishes the addition of entries to this stream, without closing it.void
putArchiveEntry
(ArchiveEntry pEntry) Writes the headers for an archive entry to the output stream.void
setLongFileMode
(int longFileMode) Set the long file mode.void
write
(byte[] b, int off, int len) private long
private void
private void
writeEntryHeader
(ArArchiveEntry pEntry) Methods inherited from class org.apache.commons.compress.archivers.ArchiveOutputStream
canWriteEntryData, count, count, getBytesWritten, getCount, write
Methods inherited from class java.io.OutputStream
flush, write
-
Field Details
-
LONGFILE_ERROR
public static final int LONGFILE_ERRORFail if a long file name is required in the archive.- See Also:
-
LONGFILE_BSD
public static final int LONGFILE_BSDBSD ar extensions are used to store long file names in the archive.- See Also:
-
out
-
entryOffset
private long entryOffset -
prevEntry
-
haveUnclosedEntry
private boolean haveUnclosedEntry -
longFileMode
private int longFileMode -
finished
private boolean finishedindicates if this archive is finished
-
-
Constructor Details
-
ArArchiveOutputStream
-
-
Method Details
-
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
- Throws:
IOException
-
closeArchiveEntry
Description copied from class:ArchiveOutputStream
Closes the archive entry, writing any trailer information that may be required.- Specified by:
closeArchiveEntry
in classArchiveOutputStream
- Throws:
IOException
- if an I/O error occurs
-
putArchiveEntry
Description copied from class:ArchiveOutputStream
Writes the headers for an archive entry to the output stream. The caller must then write the content to the stream and callArchiveOutputStream.closeArchiveEntry()
to complete the process.- Specified by:
putArchiveEntry
in classArchiveOutputStream
- Parameters:
pEntry
- describes the entry- Throws:
IOException
- if an I/O error occurs
-
fill
- Throws:
IOException
-
write
- Throws:
IOException
-
writeEntryHeader
- Throws:
IOException
-
write
- Overrides:
write
in classOutputStream
- Throws:
IOException
-
close
Calls finish if necessary, and then closes the OutputStream- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classOutputStream
- Throws:
IOException
-
createArchiveEntry
Description copied from class:ArchiveOutputStream
Create an archive entry using the inputFile and entryName provided.- Specified by:
createArchiveEntry
in classArchiveOutputStream
- Parameters:
inputFile
- the file to create the entry fromentryName
- name to use for the entry- Returns:
- the ArchiveEntry set up with details from the file
- Throws:
IOException
- if an I/O error occurs
-
createArchiveEntry
public ArchiveEntry createArchiveEntry(Path inputPath, String entryName, LinkOption... options) throws IOException Create an archive entry using the inputPath and entryName provided. The default implementation calls simply delegates as:return createArchiveEntry(inputFile.toFile(), entryName);
Subclasses should override this method.- Overrides:
createArchiveEntry
in classArchiveOutputStream
- Parameters:
inputPath
- the file to create the entry fromentryName
- name to use for the entryoptions
- options indicating how symbolic links are handled.- Returns:
- the ArchiveEntry set up with details from the file
- Throws:
IOException
- if an I/O error occurs- Since:
- 1.21
-
finish
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 classArchiveOutputStream
- Throws:
IOException
- if the user forgets to close the entry.
-