【问题标题】:Apache Common IO FileUtils IssueApache 常见 IO FileUtils 问题
【发布时间】:2013-04-16 15:22:29
【问题描述】:

我正在尝试使用 Apache Commons IO 的 FileUtils.writeStringToFile() 方法。每一点文档都说我可以做到这一点:

FileUtils.writeStringToFile(File, String with data, boolean append);

我想要这个方法,因为我希望每次都将数据写入文件末尾。

但是,在 Eclipse 中,它一直告诉我这个方法不存在。我仅有的两个是:

FileUtils.writeStringToFile(File, String with data);
FileUtils.writeStringToFile(File, String with data, String encoding);

我更正了我的 POM 文件,使其现在具有此依赖项:

<dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
</dependency>

谁能告诉我我做错了什么?

【问题讨论】:

    标签: apache apache-commons fileutils


    【解决方案1】:

    版本1.3.2没有这个方法,使用更新版本的commons-io

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    

    查看FileUtils 2.4 javadoc

    【讨论】:

    • 我用这个替换了我的 POM 文件中的旧依赖项。我仍然有同样的问题。它说带有布尔值的方法不存在。
    • 在eclipse下检查你的Maven依赖,确认你的项目使用的是2.4版本同时运行Maven更新项目,强制更新依赖或者执行一个项目clean。
    • 当我运行 Maven 安装时,它会将“commons-io-2.4.jar”放入目标文件夹。我还运行了更新项目。我仍然有同样的问题...
    • 很遗憾我无法判断你的环境有什么问题,我只能保证你要使用的方法在2.4版本中可用。我建议图书馆冲突,但这不应该是问题。
    【解决方案2】:

    原来我正在将 Tomcat 库文件以及 JRE 库文件添加到我的项目中。因为当我从 POM 中删除 commons-io 时,我仍然有 FileUtils 可用。

    我不得不从我的构建路径中删除 Tomcat 库文件,一旦我把 commons-io 放回去,它就可以工作了。

    【讨论】: