Java - jak napisac kod, ktory sprawdza czy dany pliko danej nazwie juz istnieje?

0

Hej,
Pisze pierwszy raz na forum wiec mam nadzieje, ze dobrze trafilam. Jezeli zle to prosze o przeniesienie watku.

Ucze sie programowania w jezyku Java. Na zadanie mam stworzyc programik,w ktorym uzytkownik jest pytany o podanie nazwy pliku jaki chce utworzyc (to bedzie plik.txt). Program ma skontrolowac czy plik o takiej nazwie (w tym samym folderze co program sie znajduje) juz istnieje. Jezeli plik o podanej przez uzytkownika nazwie juz istnieje program ma sie pytac uzytkownika aby ponownie napisal nazwe (tyle, ze inna). Program ma oczywiscie za kazdym nowym wpisaniem nazwy pliku kontrolowac czy plik istnieje tak aby przypadkiem nie nadpisac tego pliku.

Przyznam, ze mecze sie z tym. Nie wiem jak sobie poradzic. Z zapytaniem sie o nazwe pliku nie mam problemu, nazwa pliku zostaje zapisana jako String (tu indata). Wiem, ze chyba mam cos kombinowac potem z File xyz = new File(indata); a potem if(xyz.exists()){...} zeby sprawdzic czy taki plik juz istnieje.

Niestety wszelkie proby koncza sie na tym, ze i tak plik juz istniejacy zostaje nadpisany, a nowy wcale nie jest stworzony.

Stworzylam specjalna statyczna metode specjalnie taka, ktora jako argument ma String indata (czyli wlasnie nazwe pliku nadawana przez uzytkownika). Nie wiem czy metoda ma cos oddawac na koniec (nowy plik?) czy nie. Jak dotad tworzylam nowe pliki z PrintWriter p1 = new PrintWriter (new BufferedWriter(new FileWriter (indata))); i nie moge sobie poradzic i zrozumiec tej calej klasy File.

Z gory dzieki za pomoc.
p.s. Nie mam polskiej klawiatury (mieszkam za granica), przepraszam za bledy.

0
File file;
do {
    file = new File(spytajONazwęPliku());
} while (file.exists());

spytajONazwęPliku to twoja metoda zwracająca tę nazwę.

0

Sprawdze to. Juz mi sie samej udalo rozwiazac ten problem, ale moja metoda (wraz z wszystkimi zdaniami pytajacymi o nazwe pliku oraz o to czy ktos nadal chce kontynuowac czy zamknac program) jest bardzo rozbudowana xD. Sproboje tez twoja, moze bedzie krocej i lepiej.

Dzieki za odpowiedz:).

1 użytkowników online, w tym zalogowanych: 0, gości: 1