Package io.netty.channel
Interface FileRegion
-
- All Superinterfaces:
io.netty.util.ReferenceCounted
- All Known Implementing Classes:
DefaultFileRegion
public interface FileRegion extends io.netty.util.ReferenceCountedA region of a file that is sent via aChannelwhich supports zero-copy file transfer.Upgrade your JDK / JRE
FileChannel.transferTo(long, long, WritableByteChannel)has at least four known bugs in the old versions of Sun JDK and perhaps its derived ones. Please upgrade your JDK to 1.6.0_18 or later version if you are going to use zero-copy file transfer.- 5103988 - FileChannel.transferTo() should return -1 for EAGAIN instead throws IOException
- 6253145 - FileChannel.transferTo() on Linux fails when going beyond 2GB boundary
- 6427312 - FileChannel.transferTo() throws IOException "system call interrupted"
- 6470086 - FileChannel.transferTo(2147483647, 1, channel) causes "Value too large" exception
Check your operating system and JDK / JRE
If your operating system (or JDK / JRE) does not support zero-copy file transfer, sending a file withFileRegionmight fail or yield worse performance. For example, sending a large file doesn't work well in Windows.Not all transports support it
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description longcount()Returns the number of bytes to transfer.longposition()Returns the offset in the file where the transfer began.FileRegionretain()FileRegionretain(int increment)FileRegiontouch()FileRegiontouch(Object hint)longtransfered()Deprecated.Usetransferred()instead.longtransferred()Returns the bytes which was transferred already.longtransferTo(WritableByteChannel target, long position)Transfers the content of this file region to the specified channel.
-
-
-
Method Detail
-
position
long position()
Returns the offset in the file where the transfer began.
-
transfered
@Deprecated long transfered()
Deprecated.Usetransferred()instead.Returns the bytes which was transferred already.
-
transferred
long transferred()
Returns the bytes which was transferred already.
-
count
long count()
Returns the number of bytes to transfer.
-
transferTo
long transferTo(WritableByteChannel target, long position) throws IOException
Transfers the content of this file region to the specified channel.- Parameters:
target- the destination of the transferposition- the relative offset of the file where the transfer begins from. For example, 0 will make the transfer start fromposition()th byte andcount()- 1 will make the last byte of the region transferred.- Throws:
IOException
-
retain
FileRegion retain()
- Specified by:
retainin interfaceio.netty.util.ReferenceCounted
-
retain
FileRegion retain(int increment)
- Specified by:
retainin interfaceio.netty.util.ReferenceCounted
-
touch
FileRegion touch()
- Specified by:
touchin interfaceio.netty.util.ReferenceCounted
-
touch
FileRegion touch(Object hint)
- Specified by:
touchin interfaceio.netty.util.ReferenceCounted
-
-