public class PGPLiteralDataGenerator
extends java.lang.Object
A PGPLiteralData is used by invoking one of the open functions to create an OutputStream that raw data can be supplied to for encoding:
open(OutputStream, char, String, long, Date)
to create a packet containing a single
literal data object.open(OutputStream, char, String, Date, byte[])
to create a packet consisting of a series
of literal data objects (partials).
A PGPLiteralDataGenerator is usually used to wrap the OutputStream
obtained
from a
PGPEncryptedDataGenerator
or a PGPCompressedDataGenerator
.
Once literal data has been written to the constructed OutputStream, writing of the object stream
is completed by closing the OutputStream obtained from the open()
method, or
equivalently invoking close()
on this generator.
Modifier and Type | Field and Description |
---|---|
static char |
BINARY
Format tag for binary literal data
|
static java.lang.String |
CONSOLE
The special name indicating a "for your eyes only" packet.
|
static java.util.Date |
NOW
The special time for a modification time of "now" or
the present time.
|
static char |
TEXT
Format tag for textual literal data
|
static char |
UTF8
Format tag for UTF-8 encoded textual literal data
|
Constructor and Description |
---|
PGPLiteralDataGenerator()
Constructs a generator for literal data objects.
|
PGPLiteralDataGenerator(boolean oldFormat)
Constructs a generator for literal data objects, specifying to use new or old (PGP 2.6.x
compatible) format.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the literal data packet - this is equivalent to calling close on the stream
returned by the open() method.
|
java.io.OutputStream |
open(java.io.OutputStream out,
char format,
java.io.File file)
Open a literal data packet for the passed in File object, returning an output stream for
saving the file contents.
|
java.io.OutputStream |
open(java.io.OutputStream out,
char format,
java.lang.String name,
java.util.Date modificationTime,
byte[] buffer)
Open a literal data packet, returning a stream to store the data inside the packet as an
indefinite-length stream.
|
java.io.OutputStream |
open(java.io.OutputStream out,
char format,
java.lang.String name,
long length,
java.util.Date modificationTime)
Open a literal data packet, returning a stream to store the data inside the packet.
|
public static final char BINARY
public static final char TEXT
public static final char UTF8
public static final java.lang.String CONSOLE
public static final java.util.Date NOW
public PGPLiteralDataGenerator()
public PGPLiteralDataGenerator(boolean oldFormat)
This can be used for compatibility with PGP 2.6.x.
oldFormat
- true
to use PGP 2.6.x compatible format.public java.io.OutputStream open(java.io.OutputStream out, char format, java.lang.String name, long length, java.util.Date modificationTime) throws java.io.IOException
The stream created can be closed off by either calling close() on the stream or close() on the generator. Closing the returned stream does not close off the OutputStream parameter out.
out
- the underlying output stream to write the literal data packet to.format
- the format of the literal data that will be written to the output stream (one
of BINARY
, TEXT
or UTF8
).name
- the name of the "file" to encode in the literal data object.length
- the length of the data that will be written.modificationTime
- the time of last modification we want stored.java.io.IOException
public java.io.OutputStream open(java.io.OutputStream out, char format, java.lang.String name, java.util.Date modificationTime, byte[] buffer) throws java.io.IOException
The stream created can be closed off by either calling close() on the stream or close() on the generator. Closing the returned stream does not close off the OutputStream parameter out.
Note: if the buffer is not a power of 2 in length only the largest power of 2 bytes worth of the buffer will be used.
out
- the underlying output stream to write the literal data packet to.format
- the format of the literal data that will be written to the output stream (one
of BINARY
, TEXT
or UTF8
).name
- the name of the "file" to encode in the literal data object.modificationTime
- the time of last modification we want stored (will be stored to
second level precision).buffer
- a buffer to use to buffer and write partial packets. The returned stream takes
ownership of the buffer.java.io.IOException
- if an error occurs writing stream header information to the provider
output stream.java.lang.IllegalStateException
- if this generator already has an open OutputStream.public java.io.OutputStream open(java.io.OutputStream out, char format, java.io.File file) throws java.io.IOException
This method configures the generator to store the file contents in a single literal data packet, taking the filename and modification time from the file, but does not store the actual file data.
The stream created can be closed off by either calling close() on the stream or close() on the generator. Closing the returned stream does not close off the OutputStream parameter out.
out
- the underlying output stream to write the literal data packet to.format
- the format of the literal data that will be written to the output stream (one
of BINARY
, TEXT
or UTF8
).file
- the file to determine the length and filename from.java.io.IOException
- if an error occurs writing stream header information to the provider
output stream.java.lang.IllegalStateException
- if this generator already has an open OutputStream.public void close() throws java.io.IOException
java.io.IOException