2

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の経験が豊富な人が助けてくれますか?

4

1 に答える 1

1

少し恥ずかしいのですが、Web アプリケーションに commons-io jar を含めるのを忘れていました。実行時間の問題が発生します。

私の本当の問題は、 java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils メッセージがログに記録されないことでした。 NoClassDefFoundError は例外ではなく、Sun による素晴らしいアーキテクチャがここにあるためです。

この NoClassDefFoundError が発生すると、file.exists() チェックを含む残りのコードは実行されませんでした。

于 2009-11-30T13:51:49.570 に答える