|
TrueZIP 6.8.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectde.schlichtherle.io.rof.AbstractReadOnlyFile
de.schlichtherle.io.rof.FilterReadOnlyFile
public class FilterReadOnlyFile
A base class for any class which wants to decorate a ReadOnlyFile.
Note that subclasses of this class often implement their own virtual file
pointer.
Thus, if you would like to access the underlying ReadOnlyFile
again after you have finished working with the
FilteredReadOnlyFile, you should synchronize their file
pointers a'la:
ReadOnlyFile rof = new SimpleReadOnlyFile(new File("HelloWorld.java"));
try {
ReadOnlyFile frof = new FilteredReadOnlyFile(rof);
try {
// Do any file input on brof here...
frof.seek(1);
} finally {
// Synchronize the file pointers.
rof.seek(frof.getFilePointer());
}
// This assertion would fail if we hadn't done the file pointer
// synchronization!
assert rof.getFilePointer() == 1;
} finally {
rof.close();
}
This does not apply to this base class, however.
Subclasses implemententing their own virtual file pointer should add a note referring to this classes Javadoc like this:
Note: This class implements its own virtual file pointer. Thus, if you would like to access the underlyingReadOnlyFileagain after you have finished working with an instance of this class, you should synchronize their file pointers using the pattern as described inFilterReadOnlyFile.
| Field Summary | |
|---|---|
protected ReadOnlyFile |
rof
The read only file to be filtered. |
| Constructor Summary | |
|---|---|
FilterReadOnlyFile(ReadOnlyFile rof)
Creates a new instance of FilterReadOnlyFile,
which filters the given read only file. |
|
| Method Summary | |
|---|---|
void |
close()
|
long |
getFilePointer()
|
long |
length()
|
int |
read()
|
int |
read(byte[] b,
int off,
int len)
Reads up to len bytes of data from this read only file into
the given array. |
void |
seek(long pos)
Sets the file pointer offset, measured from the beginning of this file, at which the next read occurs. |
| Methods inherited from class de.schlichtherle.io.rof.AbstractReadOnlyFile |
|---|
read, readFully, readFully, skipBytes |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected ReadOnlyFile rof
| Constructor Detail |
|---|
public FilterReadOnlyFile(ReadOnlyFile rof)
FilterReadOnlyFile,
which filters the given read only file.
| Method Detail |
|---|
public long length()
throws IOException
IOException
public long getFilePointer()
throws IOException
IOException
public void seek(long pos)
throws IOException
ReadOnlyFileSimpleReadOnlyFile subclasses
RandomAccessFile and passes "r" as a
parameter to the superclass constructor.
On the Windows platform, this implementation allows to seek past the
end of file, but on the Linux platform it doesn't.
pos - The offset position, measured in bytes from the beginning
of the file, at which to set the file pointer.
IOException - If pos is less than 0 or if
an I/O error occurs.
public int read()
throws IOException
IOException
public int read(byte[] b,
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.
b - 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
IOException
|
TrueZIP 6.8.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||