funkcja która powinna działać - nie uruchamia się

0

mam taki problem, że czasem linie kodu sprawdzane za pomocą system.out.println() w ogóle się nie wykonują, np wywołuję funkcję która powinna się wykonać, ona nie wykonuje się. nie wiem skąd to się bierze, jak temu zaradzić?

2sprawa
przy pracy na plikach (internal storage) albo ich nie wykrywa, albo co któreś uruchomienie program jakby gubił plik i wykonuje się funkcja dla przypadku gdy plik nie zostanie odnaleziony, chociaż np przez poprzednie 5 uruchomień było ok i dane się odczytywały prawidłowo

0
if(file_playerdata.exists())
        {
try
            {
               
                FileInputStream fIn_playerdata = openFileInput(Player.playerDataFileName);
                InputStreamReader isr_playerdata = new InputStreamReader(fIn_playerdata);
                BufferedReader r = new BufferedReader(isr_playerdata);
                String reader;
                reader = r.readLine();
                money=Integer.parseInt(reader);

                reader = r.readLine();
                lvl=Integer.parseInt(reader);
              
                Player.init(money,lvl,brush_lvl);

               isr_playerdata.close();
               fIn_playerdata.close();
}catch(Exception e){System.out.println("preparing player: "+ e.toString());e.printStackTrace();}
}
else(...}

ten kod co kilka uruchomień się nie wykonuje, jakby plik znikał, wykonuje sie to co jest pod else

0

Nie wiem co masz w reszcie projektu, ale ten if nie jest potrzebny. FileInputStream rzuca wyjątek FileNotFoundException jeśli pliku nie ma, zamiast ifowania obsłuż ten wyjątek tak jak chcesz. W podanym fragmencie brakuje kontekstu żeby do końca stwierdzić, czemu czasem się wykonuje, a czasem nie. A, i użyj tzw. try z zasobami.

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