如何更正使用Java IO写入文件的静默失败?

时间:2009-11-30 13:09:16

标签: java io apache-commons java-io

我遇到了一个与commons-io / java-io有关的奇怪问题。基本上我的文件创建是无声的失败而没有例外。

FileUtils.writeLines(file, collectionOfStrings);

我查看了公共代码,试图弄清楚为什么会无声地失败,但对我而言,看起来它应该抛出异常。 (参见FileUtils.java中的第1338,163行和IOUtils.java中的第927行。)

为了尝试纠正此问题,我将此检查添加到上一行

之后的代码中
if (!file.exists()) {
    logger.warn("File creation failed.");
}

但是,即使文件创建失败,也不会输入此块。

我最终会遇到这个问题,任何对Java IO有更多经验的人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我有点尴尬,但我忘了在我的网络应用程序中包含commons-io jar。导致运行时问题。

我真正的问题是java.lang.NoClassDefFoundError:org / apache / commons / io / FileUtils 消息没有进入我的日志,因为 NoClassDefFoundError不是异常,这是Sun的精彩架构。

当遇到此NoClassDefFoundError时,其余代码未执行,包括file.exists()检查。