【发布时间】:2013-07-25 23:47:37
【问题描述】:
netty HttpStaticFileServerHandler example 使用 RandomAccessFile 有什么具体原因吗?
【问题讨论】:
netty HttpStaticFileServerHandler example 使用 RandomAccessFile 有什么具体原因吗?
【问题讨论】:
我认为这样他们就可以演示ChunkedFile的使用,这需要RandomAccessFile。原因似乎是ChunkedFile 需要能够获取文件的长度。
如果我不使用 https,我不需要使用
ChunkedFile。所以我可以选择FileInputStream而不是RandomAccessFile,它也返回FileChannel。但我无法从FileInputStream获取文件长度,这是DefaultFileRegion的必需输入。所以我觉得有必要使用RandomAccessFile。
大致正确。但是,您可能会通过其他方式获得文件长度;例如使用File.length()。
实际上,获取FileChannel 和文件长度的方式并没有太大区别。
【讨论】:
需要一个 RAF 来支持零拷贝,这需要一个通常从 RAF 获取的 FileChannel。
【讨论】: