|
TrueZIP Kernel 7.0-rc2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectde.schlichtherle.truezip.rof.AbstractReadOnlyFile
de.schlichtherle.truezip.rof.DecoratingReadOnlyFile
de.schlichtherle.truezip.rof.BufferedReadOnlyFile
@NotThreadSafe public class BufferedReadOnlyFile
A ReadOnlyFile implementation which provides buffered random read
only access to another ReadOnlyFile.
Note: This class implements its own virtual file pointer.
Thus, if you would like to access the underlying ReadOnlyFile
again after you have finished working with an instance of this class,
you should synchronize their file pointers using the pattern as described
in DecoratingReadOnlyFile.
| Field Summary | |
|---|---|
private boolean |
closed
|
private long |
fp
The virtual file pointer in the file data. |
private long |
length
|
private byte[] |
window
The buffer window to the file data. |
static int |
WINDOW_LEN
The default buffer length of the window to the file. |
private long |
windowOff
The current offset in the read only file where the buffer window starts. |
| Fields inherited from class de.schlichtherle.truezip.rof.DecoratingReadOnlyFile |
|---|
delegate |
| Constructor Summary | |
|---|---|
|
BufferedReadOnlyFile(File file)
Creates a new instance of BufferedReadOnlyFile. |
|
BufferedReadOnlyFile(File file,
int windowLen)
Creates a new instance of BufferedReadOnlyFile. |
|
BufferedReadOnlyFile(ReadOnlyFile rof)
Creates a new instance of BufferedReadOnlyFile. |
private |
BufferedReadOnlyFile(ReadOnlyFile rof,
File file,
int windowLen)
|
|
BufferedReadOnlyFile(ReadOnlyFile rof,
int windowLen)
Creates a new instance of BufferedReadOnlyFile. |
| Method Summary | |
|---|---|
private void |
assertOpen()
Asserts that this file is open. |
void |
close()
Closes this read only file. |
long |
getFilePointer()
Returns the current byte position in the file as a zero-based index. |
private void |
invalidateWindow()
Forces the window to be reloaded on the next call to positionWindow(). |
long |
length()
Returns the length of the file in bytes. |
protected static long |
max(long a,
long b)
Returns the greater parameter. |
protected static long |
min(long a,
long b)
Returns the smaller parameter. |
private void |
positionWindow()
Positions the window so that the block containing the current virtual file pointer in the encrypted file is entirely contained in it. |
int |
read()
Reads and returns the next byte or -1 if the end of the file has been reached. |
int |
read(byte[] buf,
int off,
int len)
Reads up to len bytes of data from this read only file into
the given array. |
void |
seek(long fp)
Sets the current byte position in the file as a zero-based index at which the next read occurs. |
| Methods inherited from class de.schlichtherle.truezip.rof.DecoratingReadOnlyFile |
|---|
toString |
| Methods inherited from class de.schlichtherle.truezip.rof.AbstractReadOnlyFile |
|---|
read, readFully, readFully |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int WINDOW_LEN
private long length
private long fp
private long windowOff
private final byte[] window
private boolean closed
| Constructor Detail |
|---|
public BufferedReadOnlyFile(File file)
throws NullPointerException,
FileNotFoundException,
IOException
BufferedReadOnlyFile.
file - The file to read.
NullPointerException - If any of the parameters is null.
FileNotFoundException - If the file cannot get opened for reading.
IOException - On any other I/O related issue.
public BufferedReadOnlyFile(File file,
int windowLen)
throws NullPointerException,
FileNotFoundException,
IOException
BufferedReadOnlyFile.
file - The file to read.windowLen - The size of the buffer window in bytes.
NullPointerException - If any of the parameters is null.
FileNotFoundException - If the file cannot get opened for reading.
IOException - On any other I/O related issue.
public BufferedReadOnlyFile(ReadOnlyFile rof)
throws NullPointerException,
FileNotFoundException,
IOException
BufferedReadOnlyFile.
rof - The read only file to read.
NullPointerException - If any of the parameters is null.
FileNotFoundException - If the file cannot get opened for reading.
IOException - On any other I/O related issue.
public BufferedReadOnlyFile(ReadOnlyFile rof,
int windowLen)
throws NullPointerException,
FileNotFoundException,
IOException
BufferedReadOnlyFile.
rof - The read only file to read.windowLen - The size of the buffer window in bytes.
NullPointerException - If any of the parameters is null.
FileNotFoundException - If the file cannot get opened for reading.
IOException - On any other I/O related issue.
private BufferedReadOnlyFile(ReadOnlyFile rof,
File file,
int windowLen)
throws NullPointerException,
FileNotFoundException,
IOException
NullPointerException
FileNotFoundException
IOException| Method Detail |
|---|
protected static long min(long a,
long b)
protected static long max(long a,
long b)
public long length()
throws IOException
ReadOnlyFile
length in interface ReadOnlyFilelength in class DecoratingReadOnlyFileIOException
public long getFilePointer()
throws IOException
ReadOnlyFile
getFilePointer in interface ReadOnlyFilegetFilePointer in class DecoratingReadOnlyFileIOException
public void seek(long fp)
throws IOException
ReadOnlyFileDefaultReadOnlyFile subclass
RandomAccessFile passes "r" as a parameter to
the superclass constructor.
With Sun's JSE implementation, on the Windows platform this
implementation allows to seek past the end of file, but on the Linux
platform it doesn't.
seek in interface ReadOnlyFileseek in class DecoratingReadOnlyFilefp - The current byte position as a zero-based index.
IOException - If pos is less than 0 or if
an I/O error occurs.
public int read()
throws IOException
ReadOnlyFile
read in interface ReadOnlyFileread in class DecoratingReadOnlyFileIOException
public int read(byte[] buf,
int off,
int len)
throws IOException
ReadOnlyFilelen bytes of data from this read only file into
the given array.
This method blocks until at least one byte of input is available.
read in interface ReadOnlyFileread in class DecoratingReadOnlyFilebuf - The buffer to fill with data.off - The start offset of the data.len - The maximum number of bytes to read.
-1 if there is
no more data because the end of the file has been reached.
IOException - On any I/O related issue.
public void close()
throws IOException
DecoratingReadOnlyFile.delegate to null.
close in interface ReadOnlyFileclose in interface Closeableclose in class DecoratingReadOnlyFileIOException
private void assertOpen()
throws IOException
IOException - If the preconditions do not hold.
private void positionWindow()
throws IOException
IOException - On any I/O related issue.
The window is invalidated in this case.private void invalidateWindow()
positionWindow().
|
TrueZIP Kernel 7.0-rc2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||