Package com.intellij.util.io.zip
Class JBZipFile
- java.lang.Object
-
- com.intellij.util.io.zip.JBZipFile
-
public class JBZipFile extends Object
Replacement forjava.util.ZipFile
.This class adds support for file name encodings other than UTF-8 (which is required to work on ZIP files created by native zip tools and is able to skip a preamble like the one found in self extracting archives. Furthermore it returns instances of
org.apache.tools.zip.ZipEntry
instead ofjava.util.zip.ZipEntry
.It doesn't extend
java.util.zip.ZipFile
as it would have to reimplement all methods anyway. Likejava.util.ZipFile
, it uses RandomAccessFile under the covers and supports compressed and uncompressed entries.The method signatures mimic the ones of
java.util.zip.ZipFile
, with a couple of exceptions:- There is no getName method.
- entries has been renamed to getEntries.
- getEntries and getEntry return
org.apache.tools.zip.ZipEntry
instances. - close is allowed to throw IOException.
-
-
Constructor Summary
Constructors Constructor Description JBZipFile(File f)
Opens the given file for reading, assuming the platform's native encoding for file names.JBZipFile(File f, String encoding)
Opens the given file for reading, assuming the specified encoding for file names.JBZipFile(String name)
Opens the given file for reading, assuming the platform's native encoding for file names.JBZipFile(String name, String encoding)
Opens the given file for reading, assuming the specified encoding for file names.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes the archive.void
eraseEntry(JBZipEntry entry)
String
getEncoding()
The encoding to use for filenames and the file comment.List<JBZipEntry>
getEntries()
Returns all entries.JBZipEntry
getEntry(String name)
Returns a named entry - ornull
if no entry by that name exists.JBZipEntry
getOrCreateEntry(String name)
-
-
-
Constructor Detail
-
JBZipFile
public JBZipFile(File f) throws IOException
Opens the given file for reading, assuming the platform's native encoding for file names.- Parameters:
f
- the archive.- Throws:
IOException
- if an error occurs while reading the file.
-
JBZipFile
public JBZipFile(String name) throws IOException
Opens the given file for reading, assuming the platform's native encoding for file names.- Parameters:
name
- name of the archive.- Throws:
IOException
- if an error occurs while reading the file.
-
JBZipFile
public JBZipFile(String name, String encoding) throws IOException
Opens the given file for reading, assuming the specified encoding for file names.- Parameters:
name
- name of the archive.encoding
- the encoding to use for file names- Throws:
IOException
- if an error occurs while reading the file.
-
JBZipFile
public JBZipFile(File f, String encoding) throws IOException
Opens the given file for reading, assuming the specified encoding for file names.- Parameters:
f
- the archive.encoding
- the encoding to use for file names- Throws:
IOException
- if an error occurs while reading the file.
-
-
Method Detail
-
getEncoding
public String getEncoding()
The encoding to use for filenames and the file comment.- Returns:
- null if using the platform's default character encoding.
-
close
public void close() throws IOException
Closes the archive.- Throws:
IOException
- if an error occurs closing the archive.
-
getEntries
public List<JBZipEntry> getEntries()
Returns all entries.- Returns:
- all entries as
JBZipEntry
instances
-
getEntry
public JBZipEntry getEntry(String name)
Returns a named entry - ornull
if no entry by that name exists.- Parameters:
name
- name of the entry.- Returns:
- the ZipEntry corresponding to the given name - or
null
if not present.
-
getOrCreateEntry
public JBZipEntry getOrCreateEntry(String name)
-
eraseEntry
public void eraseEntry(JBZipEntry entry) throws IOException
- Throws:
IOException
-
-