public class VirtualJarFileInputStream
extends java.io.InputStream
| Modifier and Type | Class and Description |
|---|---|
private static class |
VirtualJarFileInputStream.ByteBuffer |
private class |
VirtualJarFileInputStream.ProcessedEntry |
private static class |
VirtualJarFileInputStream.State
Basic state machine that will allow the process to transition between the different process states.
|
| Modifier and Type | Field and Description |
|---|---|
private VirtualJarFileInputStream.ByteBuffer |
buffer |
private long |
centralOffset |
private java.util.zip.CRC32 |
crc |
private int |
currentCentralEntryIdx |
private VirtualJarFileInputStream.ProcessedEntry |
currentEntry |
private VirtualJarFileInputStream.State |
currentState |
private static int |
MINIMUM_BUFFER_LENGTH |
private java.util.List<VirtualJarFileInputStream.ProcessedEntry> |
processedEntries |
private long |
totalRead |
private VirtualJarInputStream |
virtualJarInputStream |
| Constructor and Description |
|---|
VirtualJarFileInputStream(VirtualJarInputStream virtualJarInputStream)
Create with the minimum put length
|
VirtualJarFileInputStream(VirtualJarInputStream virtualJarInputStream,
int bufferLength)
Create with the a specified put size
|
| Modifier and Type | Method and Description |
|---|---|
private void |
buffer(byte b)
Buffer a single byte
|
private void |
buffer(byte[] bytes)
Buffer a byte array
|
private void |
bufferCentralDirectoryEnd()
Write the central file header records.
|
private void |
bufferInt(long i)
Buffer a 32-bit integer in little-endian
|
private boolean |
bufferLocalFileHeader()
Buffer the content of the local file header for a single entry.
|
private boolean |
bufferNextCentralFileHeader()
Buffer the central file header record for a single entry.
|
private void |
bufferShort(int i)
Buffer a 16-bit short in little-endian
|
void |
close() |
private void |
closeCurrent()
Close the current entry, and calculate the crc value.
|
int |
read() |
private static final int MINIMUM_BUFFER_LENGTH
private final VirtualJarInputStream virtualJarInputStream
private VirtualJarFileInputStream.State currentState
private final java.util.List<VirtualJarFileInputStream.ProcessedEntry> processedEntries
private VirtualJarFileInputStream.ProcessedEntry currentEntry
private final VirtualJarFileInputStream.ByteBuffer buffer
private final java.util.zip.CRC32 crc
private int currentCentralEntryIdx
private long centralOffset
private long totalRead
public VirtualJarFileInputStream(VirtualJarInputStream virtualJarInputStream)
virtualJarInputStream - The virtual jar input stream to base the stream off ofpublic VirtualJarFileInputStream(VirtualJarInputStream virtualJarInputStream, int bufferLength)
virtualJarInputStream - The virtual jar input stream to base the stream off ofbufferLength - The length of put to usepublic int read()
throws java.io.IOException
read in class java.io.InputStreamjava.io.IOExceptionpublic void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class java.io.InputStreamjava.io.IOExceptionprivate void closeCurrent()
throws java.io.IOException
java.io.IOException - if any problems occurprivate boolean bufferLocalFileHeader()
throws java.io.IOException
java.io.IOException - if any problems occurprivate boolean bufferNextCentralFileHeader()
throws java.io.IOException
java.io.IOException - if any problems occurprivate void bufferCentralDirectoryEnd()
throws java.io.IOException
java.io.IOException - if any problem occurprivate void bufferInt(long i)
i - A long representation of a 32 bit intprivate void bufferShort(int i)
i - An int representation of a 16 bit shortprivate void buffer(byte b)
b - The byteprivate void buffer(byte[] bytes)
bytes - The bytes