public class CpioArchiveOutputStream extends ArchiveOutputStream implements CpioConstants
CpioArchiveOutputStream out = new CpioArchiveOutputStream(
new FileOutputStream(new File("test.cpio")));
CpioArchiveEntry entry = new CpioArchiveEntry();
entry.setName("testfile");
String contents = "12345";
entry.setFileSize(contents.length());
entry.setMode(CpioConstants.C_ISREG); // regular file
... set other attributes, e.g. time, number of links
out.putArchiveEntry(entry);
out.write(testContents.getBytes());
out.close();
Note: This implementation should be compatible to cpio 2.5
This class uses mutable fields and is not considered threadsafe.
based on code from the jRPM project (jrpm.sourceforge.net)BLOCK_SIZE, C_IRGRP, C_IROTH, C_IRUSR, C_ISBLK, C_ISCHR, C_ISDIR, C_ISFIFO, C_ISGID, C_ISLNK, C_ISNWK, C_ISREG, C_ISSOCK, C_ISUID, C_ISVTX, C_IWGRP, C_IWOTH, C_IWUSR, C_IXGRP, C_IXOTH, C_IXUSR, CPIO_TRAILER, FORMAT_NEW, FORMAT_NEW_CRC, FORMAT_NEW_MASK, FORMAT_OLD_ASCII, FORMAT_OLD_BINARY, FORMAT_OLD_MASK, MAGIC_NEW, MAGIC_NEW_CRC, MAGIC_OLD_ASCII, MAGIC_OLD_BINARY, S_IFMT
Constructor and Description |
---|
CpioArchiveOutputStream(OutputStream out)
Construct the cpio output stream.
|
CpioArchiveOutputStream(OutputStream out,
short format)
Construct the cpio output stream with a specified format and a
blocksize of
BLOCK_SIZE . |
CpioArchiveOutputStream(OutputStream out,
short format,
int blockSize)
Construct the cpio output stream with a specified format
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the CPIO output stream as well as the stream being filtered.
|
void |
closeArchiveEntry()
Closes the archive entry, writing any trailer information that may
be required.
|
ArchiveEntry |
createArchiveEntry(File inputFile,
String entryName)
Creates a new ArchiveEntry.
|
void |
finish()
Finishes writing the contents of the CPIO output stream without closing
the underlying stream.
|
void |
putArchiveEntry(ArchiveEntry entry)
Begins writing a new CPIO file entry and positions the stream to the
start of the entry data.
|
void |
write(byte[] b,
int off,
int len)
Writes an array of bytes to the current CPIO entry data.
|
canWriteEntryData, count, count, getBytesWritten, getCount, write
flush, write
public CpioArchiveOutputStream(OutputStream out, short format)
BLOCK_SIZE
.out
- The cpio streamformat
- The format of the streampublic CpioArchiveOutputStream(OutputStream out, short format, int blockSize)
out
- The cpio streamformat
- The format of the streamblockSize
- The block size of the archive.public CpioArchiveOutputStream(OutputStream out)
out
- The cpio streampublic void putArchiveEntry(ArchiveEntry entry) throws IOException
putArchiveEntry
in class ArchiveOutputStream
entry
- the CPIO cpioEntry to be writtenIOException
- if an I/O error has occurred or if a CPIO file error has
occurredClassCastException
- if entry is not an instance of CpioArchiveEntrypublic void closeArchiveEntry() throws IOException
ArchiveOutputStream
closeArchiveEntry
in class ArchiveOutputStream
IOException
public void write(byte[] b, int off, int len) throws IOException
write
in class OutputStream
b
- the data to be writtenoff
- the start offset in the datalen
- the number of bytes that are writtenIOException
- if an I/O error has occurred or if a CPIO file error has
occurredpublic void finish() throws IOException
finish
in class ArchiveOutputStream
IOException
- if an I/O exception has occurred or if a CPIO file error has
occurredpublic void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class OutputStream
IOException
- if an I/O error has occurred or if a CPIO file error has
occurredpublic ArchiveEntry createArchiveEntry(File inputFile, String entryName) throws IOException
createArchiveEntry
in class ArchiveOutputStream
IOException
ArchiveOutputStream.createArchiveEntry(java.io.File, java.lang.String)
Copyright © 2012 Apache Software Foundation. All Rights Reserved.