最近在看尚硅谷Netty部分, 在此将NIO编程的几个点进行总结。
1.文件读写步骤:
(1)根据文件名称创建一个输入/输出流,并使用getChannel()方法获得FileChannel
(2)创建xxBuffer进行读写操作read(Buffer)/wrte(Buffer),注意使用flip函数进行读写模式切换
(3)如果直接进行文件传输,则使用transferFrom()/transferTo()函数,不需要Buffer创建
(4)读取结束后关闭文件流FilexxxStream.close()
2.Buffer读写注意事项:
(1)Buffer分很多种类型,常用ByteBuffer,将非byte类型数据读入时需要进行转换,在读写
(2)Buffer的几个要点:capacity,position,limit,mark
(3)Buffer的几个函数:capacity(),position(),limit(),mark(),flip(),clear(),hasRemaining(),isReadOnly(),hasArray(),array(),allocate(),put(),get()
(4)MappedByteBuffer可以让文件直接在堆外的内存中进行修改,
(5)NIO 还支持通过多个 Buffer (即 Buffer 数组) 完成读写操作,即 Scattering 和 Gathering