java.util.jar
Class JarOutputStream

java.lang.Object
  extended byjava.io.OutputStream
      extended byjava.io.FilterOutputStream
          extended byjava.util.zip.DeflaterOutputStream
              extended byjava.util.zip.ZipOutputStream
                  extended byjava.util.jar.JarOutputStream
All Implemented Interfaces:
ZipConstants

public class JarOutputStream
extends ZipOutputStream

The JarOutputStream class is used to write the contents of a JAR file to any output stream. It extends the class java.util.zip.ZipOutputStream with support for writing an optional Manifest entry. The Manifest can be used to specify meta-information about the JAR file and its entries.

Since:
1.2
Author:
David Connelly
See Also:
Manifest, ZipOutputStream

Field Summary
private  boolean firstEntry
           
private static int JAR_MAGIC
           
 
Fields inherited from class java.util.zip.ZipOutputStream
CENATT, CENATX, CENCOM, CENCRC, CENDSK, CENEXT, CENFLG, CENHDR, CENHOW, CENLEN, CENNAM, CENOFF, CENSIG, CENSIZ, CENTIM, CENVEM, CENVER, DEFLATED, ENDCOM, ENDHDR, ENDOFF, ENDSIG, ENDSIZ, ENDSUB, ENDTOT, EXTCRC, EXTHDR, EXTLEN, EXTSIG, EXTSIZ, LOCCRC, LOCEXT, LOCFLG, LOCHDR, LOCHOW, LOCLEN, LOCNAM, LOCSIG, LOCSIZ, LOCTIM, LOCVER, STORED
 
Fields inherited from class java.util.zip.DeflaterOutputStream
buf, def
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
JarOutputStream(OutputStream out)
          Creates a new JarOutputStream with no manifest.
JarOutputStream(OutputStream out, Manifest man)
          Creates a new JarOutputStream with the specified Manifest.
 
Method Summary
private static int get16(byte[] b, int off)
           
private static boolean hasMagic(byte[] edata)
           
 void putNextEntry(ZipEntry ze)
          Begins writing a new JAR file entry and positions the stream to the start of the entry data.
private static void set16(byte[] b, int off, int value)
           
 
Methods inherited from class java.util.zip.ZipOutputStream
close, closeEntry, finish, setComment, setLevel, setMethod, write
 
Methods inherited from class java.util.zip.DeflaterOutputStream
deflate, write
 
Methods inherited from class java.io.FilterOutputStream
flush, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

JAR_MAGIC

private static final int JAR_MAGIC
See Also:
Constant Field Values

firstEntry

private boolean firstEntry
Constructor Detail

JarOutputStream

public JarOutputStream(OutputStream out,
                       Manifest man)
                throws IOException
Creates a new JarOutputStream with the specified Manifest. The manifest is written as the first entry to the output stream.

Parameters:
out - the actual output stream
man - the optional Manifest
Throws:
IOException - if an I/O error has occurred

JarOutputStream

public JarOutputStream(OutputStream out)
                throws IOException
Creates a new JarOutputStream with no manifest.

Parameters:
out - the actual output stream
Throws:
IOException - if an I/O error has occurred
Method Detail

putNextEntry

public void putNextEntry(ZipEntry ze)
                  throws IOException
Begins writing a new JAR file entry and positions the stream to the start of the entry data. This method will also close any previous entry. The default compression method will be used if no compression method was specified for the entry. The current time will be used if the entry has no set modification time.

Overrides:
putNextEntry in class ZipOutputStream
Parameters:
ze - the ZIP/JAR entry to be written
Throws:
ZipException - if a ZIP error has occurred
IOException - if an I/O error has occurred

hasMagic

private static boolean hasMagic(byte[] edata)

get16

private static int get16(byte[] b,
                         int off)

set16

private static void set16(byte[] b,
                          int off,
                          int value)