public class ChunkedNioFile extends java.lang.Object implements ChunkedInput<ByteBuf>
ChunkedInput
,使用NIO FileChannel
通过块从文件块中提取数据。
如果您的操作系统支持zero-copy file transfer,例如sendfile()
,则可能需要使用FileRegion
。
Constructor and Description |
---|
ChunkedNioFile(java.io.File in)
创建一个从指定文件中提取数据的新实例。
|
ChunkedNioFile(java.nio.channels.FileChannel in)
创建一个从指定文件中提取数据的新实例。
|
ChunkedNioFile(java.nio.channels.FileChannel in, int chunkSize)
创建一个从指定文件中提取数据的新实例。
|
ChunkedNioFile(java.nio.channels.FileChannel in, long offset, long length, int chunkSize)
创建一个从指定文件中提取数据的新实例。
|
ChunkedNioFile(java.io.File in, int chunkSize)
创建一个从指定文件中提取数据的新实例。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
释放与输入相关的资源。
|
long |
currentOffset()
返回当前正在进行传输的文件中的偏移量。
|
long |
endOffset()
返回传输将结束的文件中的偏移量。
|
boolean |
isEndOfInput()
返回
true 当且仅当数据流中没有剩余数据且数据流已达到其结尾时。
|
long |
length()
返回输入的长度。
|
long |
progress()
返回当前传输进度。
|
ByteBuf |
readChunk(ByteBufAllocator allocator)
从流中获取分块的数据。
|
ByteBuf |
readChunk(ChannelHandlerContext ctx)
已过时。
|
long |
startOffset()
返回传输开始的文件中的偏移量。
|
public ChunkedNioFile(java.io.File in) throws java.io.IOException
java.io.IOException
public ChunkedNioFile(java.io.File in, int chunkSize) throws java.io.IOException
chunkSize
- 每个
readChunk(ChannelHandlerContext)
调用中要获取的字节数
java.io.IOException
public ChunkedNioFile(java.nio.channels.FileChannel in) throws java.io.IOException
java.io.IOException
public ChunkedNioFile(java.nio.channels.FileChannel in, int chunkSize) throws java.io.IOException
chunkSize
- 每个
readChunk(ChannelHandlerContext)
调用中要获取的字节数
java.io.IOException
public ChunkedNioFile(java.nio.channels.FileChannel in, long offset, long length, int chunkSize) throws java.io.IOException
offset
- 传输开始的文件的偏移量
length
- 要传输的字节数
chunkSize
- 每个
readChunk(ChannelHandlerContext)
调用中要获取的字节数
java.io.IOException
public long startOffset()
public long endOffset()
public long currentOffset()
public boolean isEndOfInput() throws java.lang.Exception
ChunkedInput
复制的描述
true
当且仅当数据流中没有剩余数据且数据流已达到其结尾时。
isEndOfInput
在界面
ChunkedInput<ByteBuf>
java.lang.Exception
public void close() throws java.lang.Exception
ChunkedInput
复制的描述
close
在界面
ChunkedInput<ByteBuf>
java.lang.Exception
@Deprecated public ByteBuf readChunk(ChannelHandlerContext ctx) throws java.lang.Exception
readChunk
在界面
ChunkedInput<ByteBuf>
ctx
-它提供了一个上下文ByteBufAllocator
如果缓冲区分配是必要的。
null
如果流中没有剩余数据。
请注意, null
并不一定意味着该流已达到其结尾。
在缓慢的流中,下一个块可能暂时不可用。
java.lang.Exception
public ByteBuf readChunk(ByteBufAllocator allocator) throws java.lang.Exception
ChunkedInput
复制的描述
ChunkedInput.isEndOfInput()
调用都必须返回true
。
readChunk
在界面
ChunkedInput<ByteBuf>
allocator
- ByteBufAllocator
如果缓冲区分配是必要的。
null
如果数据流中没有剩余数据。
请注意, null
并不一定意味着该流已到达结尾。
在缓慢的流中,下一个块可能暂时不可用。
java.lang.Exception
public long length()
ChunkedInput
复制的描述
length
在界面
ChunkedInput<ByteBuf>
public long progress()
ChunkedInput
复制的描述
progress
,界面
ChunkedInput<ByteBuf>
Copyright © 2008–2018 The Netty Project. All rights reserved.