CabEntry

Inheritance: java.lang.Object

public final class CabEntry

Represents single file within cab archive.

Methods

MethodDescription
extract(OutputStream destination)Extracts the entry to the stream provided.
extract(String path)Extracts the entry to the filesystem by the path provided.
getLength()Gets the length of the entry in bytes.
getName()Gets the name of the entry within the archive.
open()Opens the entry for extraction and provides a stream with entry content.
toString()Returns string representation of the instance of the CabEntry class.

extract(OutputStream destination)

public final void extract(OutputStream destination)

Extracts the entry to the stream provided.

Extract an entry of cab archive.


     try (CabArchive archive = new CabArchive("archive.cab")) {
         archive.getEntries().get(0).extract(httpResponseStream);
     }
 

Parameters:

ParameterTypeDescription
destinationjava.io.OutputStreamdestination stream. Must be writable

extract(String path)

public final File extract(String path)

Extracts the entry to the filesystem by the path provided.


     try (CabArchive archive = new CabArchive("archive.cab")) {
         archive.getEntries().get(0).extract("data.bin");
     }
 

Parameters:

ParameterTypeDescription
pathjava.lang.Stringthe path to destination file. If the file already exists, it will be overwritten

Returns: java.io.File - the file info of composed file

getLength()

public final long getLength()

Gets the length of the entry in bytes.

Returns: long - the length of the entry in bytes

getName()

public final String getName()

Gets the name of the entry within the archive.

Returns: java.lang.String - the name of the entry within the archive

open()

public final InputStream open()

Opens the entry for extraction and provides a stream with entry content.

Usage:


     CabArchive archive = new CabArchive("archive.cab");
     CabEntry entry = archive.getEntries().get(0);
     try (FileOutputStream fileStream = new FileOutputStream("data.bin")) {
         try (InputStream decompressed = entry.open()) {
             byte[] buffer = new byte[8192];
             int bytesRead;
             while (0 < (bytesRead = decompressed.read(buffer, 0, buffer.length))) {
                 fileStream.write(buffer, 0, bytesRead);
             }
         }
     } catch (IOException ex) {
     }
 

Read from the stream to get original content of file. See examples section.

Returns: java.io.InputStream - the stream that represents the contents of the entry

toString()

public String toString()

Returns string representation of the instance of the CabEntry class.

Returns: java.lang.String - string representation of this object