再网络中,如何高效的书写大块的数据是一个问题,
因为写入的时候,写入的数据是缓存到内存的,如果不停的写入,可能导致内存耗尽
如果利用零拷贝特性,可能导致将文件系统到网络栈的复制工作,Netty负责了复制过程,应用程序只需要使用一个FileRegion接口
接下来的代码,就是利用FileInputStream创建一个DefaultFileRegion,并将其写入Channel
这就是简单进行文件内容的直接传输,不进行任何处理,对于需要数据从文件系统复制到用户内存的处理,可以使用ChunkedWriteHandler,支持异步的书写大型数据
然后是interface ChunkedInput,利用这个来表示处理后的数据
利用对应的实现,来表示文件的内容
我们接下来用代码表示初始化Channel之后,我们利用WirteStreamHandler进行解析,作为ChunkedStream写入