为什么HttpStaticFileServer的netty示例使用RandomAccessFile?

时间:2013-07-25 12:07:35

标签: java http netty

netty HttpStaticFileServerHandler示例使用RandomAccessFile是否有任何特定原因?

2 个答案:

答案 0 :(得分:1)

我认为这样他们就可以证明ChunkedFile的使用,这需要RandomAccessFile。原因似乎是ChunkedFile需要能够获得文件的长度。


  

如果我不使用https,则无需使用ChunkedFile。因此,我可以选择FileInputStream而不是RandomAccessFile,而FileChannel也会返回FileInputStream。但我无法从DefaultFileRegion获取fileLength,这是RandomAccessFile的必需输入。所以我认为有必要使用File.length()

这大致是正确的。但是,您可能会以其他方式获取文件长度;例如使用FileChannel

实际上,获得{{1}}和文件长度的方式没有太大区别。

答案 1 :(得分:0)

RAF需要支持零拷贝,这需要一个最常从RAF获取的FileChannel。