ucar.unidata.io.http
Class HTTPRandomAccessFile
java.lang.Object
ucar.unidata.io.RandomAccessFile
ucar.unidata.io.http.HTTPRandomAccessFile
- All Implemented Interfaces:
- DataInput, DataOutput
public class HTTPRandomAccessFile
- extends RandomAccessFile
Gives access to files over HTTP, using jakarta commons HttpClient library.
This version uses a single instance of HttpClient, following performance guidelines at
http://jakarta.apache.org/commons/httpclient/performance.html
Plus other improvements.
- Author:
- John Caron, based on work by Donald Denbo
Fields inherited from class ucar.unidata.io.RandomAccessFile |
allFiles, BIG_ENDIAN, bigEndian, buffer, bufferStart, dataEnd, dataSize, debugAccess, debugLeaks, defaultBufferSize, endOfFile, file, fileChannel, filePosition, LITTLE_ENDIAN, location, openFiles, readonly, showOpen, showRead |
Method Summary |
void |
close()
Close the file, and release any associated system resources. |
long |
length()
Get the length of the file. |
protected int |
read_(long pos,
byte[] buff,
int offset,
int len)
Read directly from file, without going through the buffer. |
long |
readToByteChannel(WritableByteChannel dest,
long offset,
long nbytes)
Read nbytes bytes, at the specified file offset, send to a WritableByteChannel. |
Methods inherited from class ucar.unidata.io.RandomAccessFile |
flush, getAllFiles, getBufferSize, getDebugLeaks, getDebugNbytes, getDebugNseeks, getFD, getFilePointer, getLocation, getOpenFiles, getRandomAccessFile, isAtEndOfFile, order, read, read, read, readBoolean, readBuffer, readByte, readBytes, readBytes, readChar, readDouble, readDouble, readFloat, readFloat, readFully, readFully, readInt, readInt, readIntUnbuffered, readLine, readLong, readLong, readShort, readShort, readString, readUnsignedByte, readUnsignedShort, readUTF, searchForward, seek, setBufferSize, setDebugAccess, setDebugLeaks, setExtendMode, setMinLength, skipBytes, toString, unread, write, write, write, writeBoolean, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeChar, writeChar, writeChars, writeDouble, writeDouble, writeFloat, writeFloat, writeInt, writeInt, writeLong, writeLong, writeShort, writeShort, writeUTF |
defaultHTTPBufferSize
public static int defaultHTTPBufferSize
HTTPRandomAccessFile
public HTTPRandomAccessFile(String url)
throws IOException
- Throws:
IOException
HTTPRandomAccessFile
public HTTPRandomAccessFile(String url,
int bufferSize)
throws IOException
- Throws:
IOException
close
public void close()
- Description copied from class:
RandomAccessFile
- Close the file, and release any associated system resources.
- Overrides:
close
in class RandomAccessFile
read_
protected int read_(long pos,
byte[] buff,
int offset,
int len)
throws IOException
- Read directly from file, without going through the buffer.
All reading goes through here or readToByteChannel;
- Overrides:
read_
in class RandomAccessFile
- Parameters:
pos
- start here in the filebuff
- put data into this bufferoffset
- buffer offsetlen
- this number of bytes
- Returns:
- actual number of bytes read
- Throws:
IOException
- on io error
readToByteChannel
public long readToByteChannel(WritableByteChannel dest,
long offset,
long nbytes)
throws IOException
- Description copied from class:
RandomAccessFile
- Read
nbytes
bytes, at the specified file offset, send to a WritableByteChannel.
This will block until all bytes are read.
This uses the underlying file channel directly, bypassing all user buffers.
- Overrides:
readToByteChannel
in class RandomAccessFile
- Parameters:
dest
- write to this WritableByteChannel.offset
- the offset in the file where copying will start.nbytes
- the number of bytes to read.
- Returns:
- the actual number of bytes read and transfered
- Throws:
IOException
- if an I/O error occurs.
length
public long length()
throws IOException
- Description copied from class:
RandomAccessFile
- Get the length of the file. The data in the buffer (which may not
have been written the disk yet) is taken into account.
- Overrides:
length
in class RandomAccessFile
- Returns:
- the length of the file in bytes.
- Throws:
IOException
- if an I/O error occurrs.
Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.