netty HttpStaticFileServerHandler示例使用RandomAccessFile是否有任何特定原因?
答案 0 :(得分:1)
我认为这样他们就可以证明ChunkedFile
的使用,这需要RandomAccessFile
。原因似乎是ChunkedFile
需要能够获得文件的长度。
如果我不使用https,则无需使用
ChunkedFile
。因此,我可以选择FileInputStream
而不是RandomAccessFile
,而FileChannel
也会返回FileInputStream
。但我无法从DefaultFileRegion
获取fileLength,这是RandomAccessFile
的必需输入。所以我认为有必要使用File.length()
。
这大致是正确的。但是,您可能会以其他方式获取文件长度;例如使用FileChannel
。
实际上,获得{{1}}和文件长度的方式没有太大区别。
答案 1 :(得分:0)
RAF需要支持零拷贝,这需要一个最常从RAF获取的FileChannel。