Package com.mku.fs.stream
Class HttpFileStream
- java.lang.Object
-
- com.mku.streams.RandomAccessStream
-
- com.mku.fs.stream.HttpFileStream
-
public class HttpFileStream extends RandomAccessStream
File stream implementation for remote HTTP files.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.mku.streams.RandomAccessStream
RandomAccessStream.SeekOrigin
-
-
Constructor Summary
Constructors Constructor Description HttpFileStream(HttpFile file, java.lang.String mode)
Construct a file stream from a JavaFile.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canRead()
Check if stream can read from file.boolean
canSeek()
Check if stream can seek.boolean
canWrite()
Check if stream can write to file.void
close()
Close this stream and associated resources.void
flush()
Flush the buffers to the associated file.long
getLength()
Get the length of the stream.long
getPosition()
Get the current position of the stream.int
read(byte[] buffer, int offset, int count)
Read data from the file stream into the buffer provided.void
reset()
Reset the stream.long
seek(long offset, RandomAccessStream.SeekOrigin origin)
Seek to the offset provided.void
setLength(long value)
Set the length of the stream.void
setMaxNetBytesSkip(long maxNetBytesSkip)
Maximum amount of bytes allowed to skip forwards when seeking otherwise will open a new connectionvoid
setPosition(long value)
Set the current position of the stream.void
write(byte[] buffer, int offset, int count)
Write the data from the buffer provided into the stream.-
Methods inherited from class com.mku.streams.RandomAccessStream
copyTo, copyTo, copyTo
-
-
-
-
Constructor Detail
-
HttpFileStream
public HttpFileStream(HttpFile file, java.lang.String mode)
Construct a file stream from a JavaFile. This will create a wrapper stream that will route read() and write() to the FileChannel- Parameters:
file
- The JavaFile that will be used to get the read/write streammode
- The mode "r" for read "rw" for write
-
-
Method Detail
-
setMaxNetBytesSkip
public void setMaxNetBytesSkip(long maxNetBytesSkip)
Maximum amount of bytes allowed to skip forwards when seeking otherwise will open a new connection- Parameters:
maxNetBytesSkip
- The maximum number of bytes to skip
-
canRead
public boolean canRead()
Check if stream can read from file.- Specified by:
canRead
in classRandomAccessStream
- Returns:
- True if readable
-
canWrite
public boolean canWrite()
Check if stream can write to file.- Specified by:
canWrite
in classRandomAccessStream
- Returns:
- True if writable
-
canSeek
public boolean canSeek()
Check if stream can seek.- Specified by:
canSeek
in classRandomAccessStream
- Returns:
- True if seekable
-
getLength
public long getLength()
Get the length of the stream. This is the same as the backed file.- Specified by:
getLength
in classRandomAccessStream
- Returns:
- The file stream length
-
getPosition
public long getPosition() throws java.io.IOException
Get the current position of the stream.- Specified by:
getPosition
in classRandomAccessStream
- Returns:
- The current position
- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
setPosition
public void setPosition(long value) throws java.io.IOException
Set the current position of the stream.- Specified by:
setPosition
in classRandomAccessStream
- Parameters:
value
- The new position.- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
setLength
public void setLength(long value) throws java.io.IOException
Set the length of the stream. This is applicable for write streams only.- Specified by:
setLength
in classRandomAccessStream
- Parameters:
value
- The new length.- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
read
public int read(byte[] buffer, int offset, int count) throws java.io.IOException
Read data from the file stream into the buffer provided.- Specified by:
read
in classRandomAccessStream
- Parameters:
buffer
- The buffer to write the data.offset
- The offset of the buffer to start writing the data.count
- The maximum number of bytes to read from.- Returns:
- The bytes read
- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
write
public void write(byte[] buffer, int offset, int count) throws java.io.IOException
Write the data from the buffer provided into the stream.- Specified by:
write
in classRandomAccessStream
- Parameters:
buffer
- The buffer to read the data from.offset
- The offset of the buffer to start reading the data.count
- The maximum number of bytes to read from the buffer.- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
seek
public long seek(long offset, RandomAccessStream.SeekOrigin origin) throws java.io.IOException
Seek to the offset provided.- Specified by:
seek
in classRandomAccessStream
- Parameters:
offset
- The position to seek to.origin
- The type of originRandomAccessStream.SeekOrigin
- Returns:
- The new position after seeking.
- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
flush
public void flush()
Flush the buffers to the associated file.- Specified by:
flush
in classRandomAccessStream
-
close
public void close() throws java.io.IOException
Close this stream and associated resources.- Specified by:
close
in classRandomAccessStream
- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
reset
public void reset() throws java.io.IOException
Reset the stream.- Throws:
java.io.IOException
- Thrown if there is an IO error.
-
-