【问题标题】:Why does netty example for HttpStaticFileServer use RandomAccessFile?为什么 HttpStaticFileServer 的 netty 示例使用 RandomAccessFile?
【发布时间】:2013-07-25 23:47:37
【问题描述】:

netty HttpStaticFileServerHandler example 使用 RandomAccessFile 有什么具体原因吗?

【问题讨论】:

    标签: java http netty


    【解决方案1】:

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


    如果我不使用 https,我不需要使用 ChunkedFile。所以我可以选择FileInputStream 而不是RandomAccessFile,它也返回FileChannel。但我无法从FileInputStream 获取文件长度,这是DefaultFileRegion 的必需输入。所以我觉得有必要使用RandomAccessFile

    大致正确。但是,您可能会通过其他方式获得文件长度;例如使用File.length()

    实际上,获取FileChannel 和文件长度的方式并没有太大区别。

    【讨论】:

    • 谢谢斯蒂芬!如果我不使用 https,我不需要使用 ChunkedFile。所以我可以选择 FileInputStream 而不是 RandomAccessFile,后者也返回一个 FileChannel。但我无法从 FileInputStream 获取 fileLength,这是 DefaultFileRegion 的必需输入。所以我认为有必要使用RandomAccessFile。如果我遗漏了什么,请纠正我。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多