@ThreadSafe @DefaultAnnotation(value=edu.umd.cs.findbugs.annotations.NonNull.class) public class SynchronizedReadOnlyFile extends DecoratingReadOnlyFile
ReadOnlyFile
via an object provided to its constructor.| Modifier and Type | Field and Description |
|---|---|
protected Object |
lock
The object to synchronize on - never
null. |
delegate| Constructor and Description |
|---|
SynchronizedReadOnlyFile(ReadOnlyFile rof)
Constructs a new synchronized read only file.
|
SynchronizedReadOnlyFile(ReadOnlyFile rof,
Object lock)
Constructs a new synchronized read only file.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes this read-only file and releases any non-heap resources
allocated for it.
|
long |
getFilePointer()
Returns the current byte position in the file as a zero-based index.
|
long |
length()
Returns the length of the file in bytes.
|
int |
read()
Reads and returns the next byte or -1 if the end of the file has been
reached.
|
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 |
readFully(byte[] b,
int off,
int len)
Reads
len bytes into the given buffer at the given position. |
void |
seek(long pos)
Sets the current byte position in the file as a zero-based index at
which the next read occurs.
|
toStringread, readFullyprotected final Object lock
null.public SynchronizedReadOnlyFile(@Nullable ReadOnlyFile rof)
rof - the read only file to wrap in this decorator.public SynchronizedReadOnlyFile(@Nullable ReadOnlyFile rof, @CheckForNull Object lock)
rof - the input stream to wrap in this decorator.lock - the object to synchronize on.
If null, then this object is used, not the stream.public void close()
throws IOException
ReadOnlyFileclose in interface ReadOnlyFileclose in interface Closeableclose in interface AutoCloseableclose in class DecoratingReadOnlyFileIOExceptionpublic long getFilePointer()
throws IOException
ReadOnlyFilegetFilePointer in interface ReadOnlyFilegetFilePointer in class DecoratingReadOnlyFileIOExceptionpublic long length()
throws IOException
ReadOnlyFilelength in interface ReadOnlyFilelength in class DecoratingReadOnlyFileIOExceptionpublic int read()
throws IOException
ReadOnlyFileread in interface ReadOnlyFileread in class DecoratingReadOnlyFileIOExceptionpublic 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 unless
len is zero.read in interface ReadOnlyFileread in class DecoratingReadOnlyFileb - 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 readFully(byte[] b,
int off,
int len)
throws IOException
ReadOnlyFilelen bytes into the given buffer at the given position.readFully in interface ReadOnlyFilereadFully in class AbstractReadOnlyFileb - The buffer to fill with data.off - The start offset of the data.len - The number of bytes to read.IOException - On any I/O related issue.public void seek(long pos)
throws IOException
ReadOnlyFileDefaultReadOnlyFile
passes "r" as a parameter to the constructor of its super-class
RandomAccessFile.
With Oracle'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 DecoratingReadOnlyFilepos - The current byte position as a zero-based index.IOException - If pos is less than 0 or if
an I/O error occurs.Copyright © 2004-2011 Schlichtherle IT Services. All Rights Reserved.