0

次のチェックでエラーが発生します...存在しないファイルを読み込もうとしたため...どうすればこのチェックを安全に行うことができますか?

File file = new File(getClass().getResource("/file.xml").getFile());

if(file.exists()==false){

    //CREATE THE FILE


    }

    else{

    //UPDATE THE FILE
    }
4

2 に答える 2

3

Class.getResource()WEB-INF/libクラスローダーを使用して、webapp のディレクトリ内の jar 内、または webapp 内にある 内のリソースの URL を返しますWEB-INF/classes。これがファイルであると想定することはできませんし、想定してはいけません。通常、webapp は war ファイルとしてデプロイされます。とにかく、この戦争の内容は読み取り専用にしておく必要があります。

ファイルに書き込みたい場合は、webapp の外部のディレクトリでファイル IO を使用します。

于 2013-04-15T21:16:25.977 に答える
0

の API をClass.getResource()見ると、このファイルが存在しない場合は null が返されることがわかります。したがって、これを行うだけです:

URL url = getClass().getResource("/file.xml");
if(url == null) {
    // File does not exist
}
else {
    // File exists
}

人々が言っ​​ているように、そのディレクトリ内のファイルに書き込めるとは限らないため、書き込むときは、それが外部の場所にあることを確認してください。

于 2013-04-15T21:13:09.360 に答える