web-dev-qa-db-ja.com

リソースファイルがJavaに存在するかどうかを確認する方法は?

私はJavaのようにリソースファイルにテキストを出力しようとしています:

File file = new File(MLM.class.getClassLoader().getResource("mazes.txt").toString());
BufferedWriter out = new BufferedWriter(new FileWriter(file));
..

しかし、リソースファイルが作成されていないため、nullポインタ例外が発生します。このエラーを回避するために、空のリソースファイルがまだ存在しない場合、最初に作成するにはどうすればよいですか?

27
flea whale

単純なnullチェックで十分です

URL u = MLM.class.getResource("/mazes.txt");
if (u != null) {
         ...
}

getResource のjavadocから

戻り値:
URLオブジェクト、またはこの名前のリソースが見つからない場合はnull

42
Johan Sjöberg

コードの前に使用できます:

File.createNewFile()

この名前のファイルがまだ存在しない場合にのみ、この抽象パス名で名前が付けられた新しい空のファイルを原子的に作成します。ファイルの存在の確認と、存在しない場合のファイルの作成は、ファイルに影響を与える可能性のある他のすべてのファイルシステムアクティビティに関してアトミックな単一の操作です。

2
Sandro Munda