2012-02-21 11 views
17

Próbuję tekstu wyjściowego do pliku zasobów w Javie tak:Jak sprawdzić, czy plik zasobów istnieje w Javie?

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

ale ponieważ plik zasób nie został stworzony otrzymuję wyjątku null pointer. Jak mogę najpierw utworzyć pusty plik zasobów, jeśli już nie istnieje, aby uniknąć tego błędu?

+0

Proszę sprawdzić ten post: http://stackoverflow.com/questions/1816673/how-do-i-check-if-a-file-exists-java-on-windows – adis

Odpowiedz

32

Prosta kontrola zerowa wystarczyłoby

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

Z javadoc dla getResource

Powroty:
obiektu URL lub null, jeśli nie zasób o tej nazwie znajduje

+3

nie działa dla mnie , ale MLM.class.getResource ("mazes.txt") zadziałało. – Anthony

+0

Potrzebuję bezwzględnej ścieżki, takiej jak ta 'MLM.class.getResource ("/mazes.txt ")' – user6537157

1

Możesz użyć przed kodem:

File.createNewFile()

atomowo tworzy nowy, pusty plik o nazwie o tej abstrakcyjnej ścieżki wtedy i tylko wtedy, gdy plik o takiej nazwie jeszcze nie istnieje. Sprawdzanie, czy istnieje plik i tworzenie pliku, jeśli nie istnieje, to jest pojedyncza operacja, która jest atomowa względem wszystkich innych czynności systemu plików, które mogą mieć wpływ na plik.

Powiązane problemy