【问题标题】:Inquiry about opening a FIleChannel关于开通 FIleChannel 的咨询
【发布时间】:2013-08-11 07:47:54
【问题描述】:

为什么要以以下方式打开 FileChannel:

FileChannel.open(path,StandardOpenOption.READ,StandardOpenOption.APPEND);

给出一个例外?

我知道它是由 API 指定的。但是我想知道为什么 READ, WRITE 的组合允许它,而 READ 和 APPEND 的组合不允许它。

提前致谢。

【问题讨论】:

    标签: io nio filechannel bytechannel


    【解决方案1】:

    因为它没有任何意义。您不能在仅读取文件时附加到文件。

    【讨论】:

    • 如果你想写 append 然后使用同一个文件从中读取什么?它强制使用 2 个 FileChannel,一个用于读取,一个用于写入...
    • 不,它没有。除了 READ 和 APPEND 之外,没有人会阻止您指定 StandardOpenOption.WRITE。你的问题没有意义。
    • “你的问题没有意义。”对我来说,您的评论没有意义,因为按照您的指示会导致同样的异常。 Exception in thread "main" java.lang.IllegalArgumentException: READ + APPEND not allowed。不过感谢您的宝贵时间。
    • @RollerBall 换句话说,您确实想要写入文件吗?您的问题中没有提到它。
    • 我唯一想知道的是,引用我的问题:“我想知道为什么它允许使用 READ、WRITE 的组合而不是 READ 和 APPEND”(或者我如果您愿意,可以添加 READ、WRITE 和 APPEND,但是 APPEND 意味着写入,您可以使用 CREATE 和 APPEND 打开文件而不指定 WRITE,并且仍然能够写入文件。
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 2016-01-16
    • 2016-12-05
    • 2022-07-13
    • 2022-07-27
    • 2015-06-04
    • 2019-12-27
    • 2013-05-05
    相关资源
    最近更新 更多