FileRandomIO (Java Globus API)
org.globus.ftp
Class FileRandomIO
java.lang.Object
org.globus.ftp.FileRandomIO
All Implemented Interfaces: DataSink , DataSource
public class FileRandomIO extends Object implements DataSink , DataSource
Thread safe reference implementation of DataSink and DataSource.
Implements reading and writing data to a local file.
Note: Does not work with Session.STREAM
transfer mode, only with GridFTPSession.EBLOCK mode.
Method Summary
void
close ()
Closes the underlying file
Buffer
read ()
In this implementation, each read() returns data sequentially.
long
totalSize ()
Optional operation.
void
write (Buffer buffer)
Writes the specified buffer to this data sink.
Methods inherited from class java.lang.Object
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
See Also: Constant Field Values
bufferSize
protected int bufferSize
file
protected RandomAccessFile file
offset
protected long offset
FileRandomIO
public FileRandomIO (RandomAccessFile file)
Behave like FileRandomIO(file, DEFAULT_BUFFER_SIZE)
Parameters: file - local file that will be be used as data source or
destination
FileRandomIO
public FileRandomIO (RandomAccessFile file,
int bufferSize)
Parameters: file - local file that will be be used as data source or
destinationbufferSize - size of the buffer returned during single
read operation
write
public void write (Buffer buffer)
throws IOException
Description copied from interface: DataSink
Writes the specified buffer to this data sink.
Note: buffer.getOffset() might
return -1 if the transfer mode used does not support
data offsets, for example stream transfer mode.
Specified by: write in interface DataSink
Parameters: buffer - the data buffer to write.
Throws:
IOException - if an I/O error occurs.
read
public Buffer read ()
throws IOException
In this implementation, each read() returns data sequentially.
Specified by: read in interface DataSource
Returns: The data buffer read. Null, if there is
no more data to be read.
Throws:
IOException - if an I/O error occurs.
close
public void close ()
throws IOException
Closes the underlying file
Specified by: close in interface DataSink Specified by: close in interface DataSource
Throws:
IOException - if an I/O error occurs.
totalSize
public long totalSize ()
throws IOException
Description copied from interface: DataSource
Optional operation. Returns the total size, in bytes, of the
data in this source. If the implementation is not able to
provide a total size for the data source, it should return
-1
Specified by: totalSize in interface DataSource
Throws:
IOException - if an I/O exception occurs