【问题标题】:Using FileChannel to fsync a directory with NIO.2使用 FileChannel 与 NIO.2 同步目录
【发布时间】:2015-06-10 04:31:44
【问题描述】:

我刚刚发现,使用 NIO.2,至少在 Linux 下,我可以在目录上打开 FileChannel,并在底层文件描述符上调用 force(true) 调用 fsync()。不用讨论这是否should be necessary,很高兴最终在纯 Java 中提供此功能。

不过,我无法找到记录此行为的任何地方。我可以指望它在所有 Unix 平台、Java 的未来版本和非 Oracle JVM 上运行吗?

【问题讨论】:

  • 那是关于文件的;只有 Java 7 似乎允许在目录中使用 fsync,我想知道这是否是故意的。
  • 啊,明白了,请看下面@EJP 的回答。

标签: java nio java-7


【解决方案1】:

请参阅以下主题:http://mail.openjdk.java.net/pipermail/nio-dev/2015-May/003140.html

它在技术上不受支持,但看起来支持将保留,因为许多应用程序都依赖它。

【讨论】:

    【解决方案2】:

    您可以依靠文档中的任何内容,而不是其他任何东西。

    【讨论】:

    • FileInputStream 不同,FileChannel.open() 的文档并没有说它只适用于常规文件,我想这是必须的。
    猜你喜欢
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2011-01-03
    • 1970-01-01
    • 2016-05-01
    • 2012-02-07
    相关资源
    最近更新 更多